[C]Programm funktioniert nicht(Großbuchsabe "C" zahlen)

C_Boy

Mitglied
Hallo!

Ich hab ein Übungsprogramm geschrieben, aber es geht leider nicht.
Die Ausgabe funktioniert, aber danach...
Schaut es euch mal an bitte.

Hier das Programm:

Code:
#include <stdio.h>

//Unterprogramm zum zaehlen der 'C' die im String vorkommen

int czaehlen(char z[]);

int czaehlen(char z[])
{
     
     int n=0;
     int c=0;
     int x=0;

     while(z[x] != '\0')
     {
   if(z[x] >= 'A' && z[x] <= 'Z')
     {
       c++;
     }
     n++;
     }
   
     return(c);
}

int main()
{
    char z[100];
  int n=0;
    int c=0;

    printf("geben sie bitte ein wort ein:\n");
    gets(z);

    c=czaehlen(z);

    printf("anzahl der großbuchstaben C:%s\n",c);

    return (0);

}

Bitte keine Befehle wie 'sprintf' und sonstiges verwenden.
Ich bitte um Hilfe.

Danke

mfg Hallo
 
Auf Anhieb fallen mir zwei Sachen auf:

1.Wieso prüfst du, ob der char Wert zwischen A und Z liegt, wenn du doch nur C zählen willst
2.Eine Endlosschleife. Du änderst in der Schleife nie x.

Edit: Habs die beiden Sachen mal geändert und noch was drittes. Du hast zur Ausgabe des Zählergebnisses den Formatstring "%s" und nicht "%d" benutzt.

C:
#include <stdio.h>

//Unterprogramm zum zaehlen der 'C' die im String vorkommen

int czaehlen(char z[]);

int czaehlen(char z[])
{
	int c=0;
	int x=0;
	
	while(z[x] != '\0')
	{
		if(z[x] == 'C')
			c++;
		x++;
	}
	
	return(c);
}

int main()
{
	char z[100];
	int n=0;
	int c=0;
	
	printf("geben sie bitte ein wort ein:\n");
	gets(z);
	
	printf("Danke!\n");
	
	c=czaehlen(z);
	
	printf("anzahl der großbuchstaben C:%d\n", c);
	
	return (0);
}
 
Zuletzt bearbeitet:
Danke, es funktioniert.

Und nochwas bitte.
Wenn ich jetzt in einen String eingebe: Ich besitze einen PC.
Dann soll das Programm alle vorhandenen Buchstaben zaehlen z.B. i=2, s=1 etc.

Ich denk mir das es irgendwie mit einer if(....) geht.
z.B.
if(text[x] >= 'A' usw.)
(

)

Hab keine Ahnung :(.

Wie könnte ich das machen?
Wie gesagt bitte keine sprintf also solche 'eigene' Stringsbefehle verwenden außer gets das kann ich schon :D.

Danke

LG
 
Zuletzt bearbeitet:
Zurück