Sonderzeichen im char Array suchen

fujitsufan

Erfahrenes Mitglied
Hallo,

wie suche ich in einem char Array nach Sonderzeichen, die ich nicht mit der Tastatur abbilden kann.

Normalerweise suche ich mit der Standardfunktion strstr(const char *str1, const char *str2);
nach Zeichen oder Zeichenfolgen.

Beispiel:
char acString[256] = "Neue Zeichenkette #";
if(strstr(acString, "#") == NULL)

Jetzt muss ich aber nach Zeichen suchen, die nicht auf meiner Tastatur drauf sind.
Ich weiß wie die Zeichen aussehen und ich weiß die Position in der Ascii- Tabelle (Dagger 134, Double-Dagger 135).



mfG.
fujitsufan
 
Hallo,

zum Suchen eines einzelnen Zeichens benutze die Funktion strchr(). Dann kannst du auch den ASCII-Code des gesuchten Zeichens als Parameter verwenden.

Gruß
MCoder
 
Erstelle die ein char(wahlweise auch int oder short) array, welches die größe der ASCII Tabelle hat.
dieses Array füllst du initial mit Werten. z.B. kannst du sagen, das alle deine Sonderzeichen die du suchst den Wert 0 bekommen und der rest eine 1.

Dann musst du nur noch eine Abfrage machen wie:

PHP:
// eingegebenes zeichen ist char c
// tabelle = {0,0,0,(wo halt sonderzeichen sind ne 0, sonst ne 1)....}
if(!tabelle[ c]) {
    // sonderzeichen
} else {
    //kein sonderzeichen
}

Ich find das ist eine sehr elegante und schnelle Lösung.

So könnte man dann noch zusätzlich Zahlen,upper case,lowercase etc. in einem Aufwasch voneinander trennen.
 
Zuletzt bearbeitet:
Zurück