Zeichen in einem String ausgeben
-
Du kannst dazu den Rückgabewert von strchr() nehmen. Der zeigt auf das gefundene Zeichen.
Das einfachst ist aber, du machst selber eine Schleife über den String und zählst mit.
-
Wie wärs mit selbst zählen:
#include <stdio.h> #include <string.h> int main() { char hallo[] = "Hallo Welt. Wie geht es dir?"; int anzahl = 0; int index; for(index = 0; index < strlen(hallo); ++index) if(hallo[index] = 'e') ++anzahl; printf("String enthaelt %d\n", anzahl); system("PAUSE"); return 0; }
Edit: string.h mit aufgenommen
-
Jetzt bitte noch ohne Stringfunktionen wie
strlen()
.
-
Hallo, danke erstmal für die Antworten.
Doch, klar, das string.h hab ich vergessen, danke.
Hab das jetzt versucht, aber das Problem ist, er gibt mir 28 Zeichen aus, also die Anzahl aller Zeichen, nicht nur die 'e's.... Kann man das strlen in deinem Code nicht irgendwie durch was anderes ersetzen?
-
Belli hat ein = vergessen
-
Sorry, es muss natürlich:
if(hallo[index] == 'e')
heißen.@DirkB:
Warum?
-
Ahhh, ja, jetzt klappts. Cool danke !!
Und wie siehts aus mit der Beachtung von Groß- und Kleinschreibung? Wenn man jetzt Großbuchstaben suchen will, muss man da einfach 'E' statt 'e' eingeben? Und wenn man beides gleichzeitig sucht, dann 'E' || 'e' ?
-
Gast12345678 schrieb:
Und wie siehts aus mit der Beachtung von Groß- und Kleinschreibung? Wenn man jetzt Großbuchstaben suchen will, muss man da einfach 'E' statt 'e' eingeben?
Sowas eignet sich hervorragend dafür, es mal selbst auszuprobieren ...
Gast12345678 schrieb:
Und wenn man beides gleichzeitig sucht, dann 'E' || 'e' ?
if( ... == 'e' || ... == 'E')
-
Nicht ganz
if((hallo[index] == 'e') || (hallo[index] == 'E'))
oder
#include <ctype.h> ... if(tolower(hallo[index]) == 'e')
-
Ja stimmt, hast Recht, habs jetzt ausprobiert. Es funktioniert. Also danke nochmal, hat mir sehr geholfen!