regulären Audruck
-
Hallo,
habe eine ziemlich blöde Frage:
möchte von einem string wissen, wann in ihm das erste Mal ein Zeichen aus einem anderen String (hier: charSet) vorkommt.
Dazu hab ich mir die Funktion : strchr ausgeguckt.
Ich will nun das erste Auftreten von einem Buchstaben aus dem Alphabet, egal ob groß-oder kleingeschrieben erkennen.
Gibts ne andere Möglichkeit als charSet so zu initialisieren:
char charSet[] = "ABCD usw.";
z.B. irgeneinen regulären Audruck??Danke!!!
-
RegExp kennt leider der C Standard nicht, dazu musst du eine externe Library nehmen regex unter Unix zB
-
Mit 'strchr' findest Du das erste Auftreten von einem Zeichen in einem String. Die Funktion die Du suchst, heißt vermutlich 'strpbrk' (ja, ich freue mich auch immer wieder über diesen wunderschönen Namen). Dabei muss der zweite Parameter dein 'charSet' sein.
Du kannst auch den gesamten String von vorne durchgehen und für jedes Zeichen 'isalpha' aufrufen (bei entsprechender Lokale liefert das sogar die gewünschten Ergebnisse) oder von Hand vergleichen, ob es deinen Anforderungen für 'Alphabet' genügt.
Tricky wäre eine Lösung mit den pseudoregulären Ausdrücken von 'sscanf'. Das sieht dann so aus:
#include <stdio.h> int find_first_element_of_alphabet(char const *str) { int n; sscanf(str, "%*[^a-zA-Z]%n", &n); return n; }
[ Dieser Beitrag wurde am 03.06.2003 um 21:28 Uhr von Daniel E. editiert. ]