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.


Anmelden zum Antworten