Frage zu C-Programm das die Zeichenanzahl, die eingeben wird, wieder ausgibt

Weonde

Mitglied
Servus,

ich bekomme es einfach nicht hin, diesen Quellcode so zu verändern, das er endlich das macht was ich möchte..

Kann mir hier vllt ein erfahrenerer Programmierer einen Tipp geben oder vllt sogar helfen?

char satz[999];
printf("Bitte Satz eingeben");
fflush(stdout);
scanf("%s",satz);
gets(satz);
laenge=strlen(satz);

/*Programmfrage*/

printf("Möchten Sie \n [1] die Leerzeichen mitzählen\n oder \n[2] bei der Zählung ignorieren?");
fflush(stdout);
scanf("%d",&eingabe);

/*LEERZEICHEN*/

if (eingabe == 1)

for(buchstabe=0; buchstabe<laenge; buchstabe++)
{
if(satz[buchstabe] == 'i')

anzahl++;
}



/*OHNE LEERZEICHEN*/


if (eingabe == 2)

for(buchstabe=0; buchstabe<laenge; buchstabe++)
{
if(satz[buchstabe] == 'i')

anzahl++;
}

{
if (satz[buchstabe] == ' ')

anzahl=-1;

}

{
if (satz[buchstabe] == '>')

anzahl=-1;

}
buchstabe_1=buchstabe;

printf("Der Text hat %d Zeichen",buchstabe_1);
}

Danke!
 
Nur eine Frage: was soll das programm eigentlich genau machen?
Buchstaben zählen schon, aber wozu die sachen mit 'l', > usw?
 
Das Programm soll also die Buchstabenanzahl mit/ohne Leerzeichen herausfinden?

Code:
char satz[999];
int laenge,eingabe;//Nicht vergessen!
printf("Bitte Satz eingeben");
fflush(stdout);
//WARUM?: scanf("%s",satz);
gets(satz); 
laenge=strlen(satz);

/*Programmfrage*/

printf("Möchten Sie \n [1] die Leerzeichen mitzählen\n oder \n[2] bei der Zählung ignorieren?");
fflush(stdout);
scanf("%d",&eingabe);

Also der Teil passt bis auf die Komentar-Korrekturen schon einmal.
Mich wunderts nur, warum du satz gleich zweimal einliest - noch dazu einmal mit scanf? das gehört jedenfalls weg.

dann könnte es zirka so weitergehen:

Code:
if(eingabe==2)
{
   for(int j=0;j<strlen(satz);j++)
   {if(satz[j]==32)laenge--;}
}

Weil im laenge ist sowieso schon die anzahl, und ohne leerzeichen zählt er alle leerzeichen wieder weg.

und dann am schluss noch ausgeben:

printf("Es sind %d Zeichen",laenge);

Mehr ist es nicht.
übrigens sorry wenn irgendwo ein semikolon fehlt etc, habs nicht kompiliert

gruß
 
Vielen Dank, ich habe eine ähnliche Lösung gefunden, aber jetzt lässt mich mein Visual C++ im Stich...

Ich kann kein Programm mehr schreiben,

selbst bei Hallo Welt kommt der Fehler
error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.

Das darf doch nich wahr sein.. :mad:
 
Ja in dem Fall wars jetz mal das einfachste vom Einfachem..

#include <stdio.h>
main() {
printf("\nDas Ergebnis von\n12 durch 4 ist %i.",3);
}
 
der Fehler
Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
kommt wenn man vergisst, beim definieren einer Funktion, den rueckgabewert einzugeben.

Oder kurz: schau mal dein "main()" hat keinen "int" davor ;)
 

Neue Beiträge

Zurück