Zeichen in einer Zeichenkette zählen C#
-
Erst nochmal mit Array:
for (i = 0; wort[i] != '\0'; i++) // i<50 ersetzt. { if (wort[i] == buchstabe) anzahl = anzahl+1; }
Du brauchst einen Zeiger auf das Array
char *p; ... p = wort; // bei eienem Array kein &
Beim Vergleich greifst du dann auf das Element mit * zu:
*p != '\0';
Und dann musst du noch den Zeiger weiterzählen
p++
Dann schaust du mal wo das oben hinpassen könnte. (das i brauchst du dann nicht mehr)
-
for (p = wort; *p != '\0'; p++) { if (*p == buchstabe) anzahl = anzahl+1; }
Soweit richtig?
Danke auf jeden Fall, ward mir ne sehr große Hilfe!
-
Prima.
Statt*p != '\0'
kann man auch einfach nur*p
schreiben, da C jeden Wert ungleich 0 als wahr auffasst.
Hier spielt es auch keine Rolle ob du das Post- oder Preinkcrement benutzt.Also wenn du sowas wie
for (p = wort; *p; ++p)
siehst, ist es das Gleiche wie dein Code.