char controleren

Status
Niet open voor verdere reacties.

lukkezeh

Gebruiker
Lid geworden
26 sep 2006
Berichten
29
hallo allemaal,

ik heb een probleem met het controleren van een variabele. Ik heb een tekstveld waarin een getal getypt word. Dit getal wil ik nummer voor nummer controleren. Ik heb op dit moment de volgende code:

Code:
String sOhm;
	char acOhm[51];
	int iStrlen, iLoop, iOhm;
	sOhm = Edit2->Text;
	if (Edit2->Text == "")
	{
		ShowMessage ("Ongeldige weerstandswaarde. Probeer opnieuw!");
		return;
	}
	else
	{
		strcpy (acOhm,sOhm.c_str());
		iStrlen = strlen(acOhm);
		for (iLoop = 0; iLoop < iStrlen; iLoop++)
		{
			iOhm = atoi(acOhm[0]);
			if (acOhm[0] == "2")
			{
				ShowMessage (acOhm[0]);
				return;	
			}
		}
	}

ik kom er helemaal niet uit. kan iemand me verder helpen?
 
Wat gaat er precies mis?
Ik gok hierop:
Code:
iOhm = atoi(acOhm[0]);

atoi wil een char array als argument, het werkt niet met een enkele char.
Wat ik zou doen is controleren of het een getal is
Code:
if (acOhm[iLoop] >= '0' && acOhm[iLoop] <= '9')

Zoals je in de Ascii tabel kan vinden is de ascii waarde van '0' 48. Om een char met een getal om te zetten in een nummer is het genoeg om er 48 van af te trekken.
Code:
iOhm = acOhm[iLoop] - 48;

[edit]Ik zie trouwens ook dat dit niet werkt
Code:
iOhm = atoi(acOhm[0]);
			if (acOhm[0] == "2")
Dubbele quotes gebruik je bij een string/char array. Bij een gewone char gebruik je enkele quotes
Code:
if (acOhm[0] == '2')
Overigens vraag ik me af waarom je eerst een char omzet in een int en vervolgens de waarde van de char controleert.[/edit]
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan