C Ein Zeichen suchen

HansJ

Mitglied
Hallo,
ich habe schon wieder eine Frage.

Von einem Textfeld hole ich mir "szArtikel" nun möchte ich wissen ob 13 Zeichen eingegeben wurden.

Da "szArtikel" durch die Deklaration immer eine Länge von 13 hat und nur Zahlen eingeben werden können, habe ich "szArtikel" mit # gefüllt.

Jetzt möchte ich, nach dem die Eingabe vom Textfeld in "szArtikel" steht, darin nach einem # suchen (dann wären weniger als 13 Stellen eingeben worden) aber das funktioniert nicht.

Ich habe es mit wcsrchr und mit wcsstr probiert aber es wird nicht gefunden.

Was mach ich hier falsch, oder hat jemand eine bessere Idee.

Code:
#include <wchar.h>
#include <stdio.h>
#include <string.h>

int  ch = '#';
TCHAR	szArtikel[14]	= TEXT("#############");
TCHAR	szSuchen[]	= TEXT("#");

TCHAR	*pdest;
int	iResult		= 0;

....

Edit_GetText(hctl_EDIT_Artikel, szArtikel, 13);
	
pdest =  wcsrchr(szArtikel, ch );
iResult = pdest - szArtikel + 1;

if( pdest != NULL )
{
....
}

pdest = wcsstr(szArtikel, szSuchen);

iResult = pdest - szArtikel + 1;
if (iResult==1)	
{
....
}
 
Hi.

Dadurch das ein C String immer mit einem NUL Zeichen terminiert wird wirst du von deinen # Zeichen keins in dem String finden da alle Stringfunktionen logischerweise bei dem NUL Zeichen aufhören den String weiter zu untersuchen.

Wenn du wissen willst wie lang ein String ist benutz die strlen bzw. _tcslen Funktionen.

Gruß
 
Zurück