String nach Buchstabenfolgen untersuchen:
-
Hallo, ich Programmiere gerade ein Programm, welches eine Fußballtabelle ausgibt. Hierbei kann man ERgebnisse eingeben. Nun hängt es gerade daran, dass ich nicht weiß, wie ich z.B. aus eiener String Eingabe "VfB - FCB 2:1", die zwei Abkürzungen VfB und FCB heraus bekomme. Habe im Moment folgendes:
char eingabe[15], heimteam[3], gastteam[3]; int tore[2]={0,0}, tore_gast, i=0, j, k=0; printf("Bitte geben Sie ein Ergebnis ein(Bsp: VfB - FCB 2:1):"); fgets(eingabe, 15, stdin); strncpy(heimteam, eingabe, 3); //gastteam[3]=NULL; heimteam[3]=NULL; printf("%s\n", heimteam); printf("%s", gastteam);
Somit komme ich an die ersten 3 Zeichen für das Heimteam. Jedoch wie komme ich an die Zeichen 6-9 für das Gastteam? Hat hier jemand eine Idee?
Noch besser wäre es, wenn ich den Eingabestring einfach auf eine bestimmte Zeichenfolge untersuchen könnte wie z.B. auf VfB oder FCB.
Danke.
-
strstr() in string.h
Sofern der Rückgabewert NULL ist, wurde der zu suchende String nicht gefunden.
-
Wenn deine Vereinsnamen nur drei Zeichen lang sind geht
strncpy(heimteam, eingabe+6, 3);
Allerdings hast du da zwei Probleme:
1. Deine Arrays für die Mannschaften sind nicht groß genug.
2. strncpy kopiert die terminierende '0' nicht mit, wenn die Längengrenze erreicht ist.Du kannst das ganze auch mit sscanf machen.
Wenn du (mit strstr) suchen willst, musst du die Mannschaften ja schon kennen.
Die Position einzelner Zeichen wie '-' oder ':' kannst du mit strchr finden.
-
ok danke, so gehts nun
char eingabe[15], heimteam[4], gastteam[4]; int tore[2]={0,0}, tore_gast, i=0, j, k=0; printf("Bitte geben Sie ein Ergebnis ein(Bsp: VfB - FCB 2:1):"); fgets(eingabe, 15, stdin); strncpy(heimteam, eingabe, 3); strncpy(gastteam, eingabe+6, 3); gastteam[3]=NULL; heimteam[3]=NULL; printf("%s\n", heimteam); printf("%s", gastteam);
-
Wie wäre es eigentlich mit
scanf("%3s - %3s %d:%d", heimteam, gastteam, tore, tore + 1);
?
Das erledigt doch in einem Rutsch alles was du bisher programmiert hast und was du noch vor hast zu programmieren, inklusive Konsistenzprüfungen. Dazu auch noch ohne das Risiko, etwas falsch zu implementieren, das du hast, wenn du alles selber machst.
-
Dann aber bitte mit Auswertung der scanf-Rückgabe.