leerzeichen zählen, fehler irgendwo
-
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { char satz[100]; int x=0; int ergebnis=0; printf("Hallo, geben Sie bitte einen Satz ein."); scanf("%s",&satz[40]); while(satz[x]){ if(x==' '){ ergebnis=ergebnis+1; } x++; } printf("%i",ergebnis); system("PAUSE"); return EXIT_SUCCESS; }
hi an alle, ich weiß echt net was an dem programm falsch sein soll, dieses Programm soll einfach nur die leerzeichen zählen.
Mfg lucbossman
-
schreibst du c oder c++?
-
u.A. würd ich mir das mal ansehen
scanf("%s",&satz[40]);
-
Du musst schon den Inhalt von deinem Satz mit dem Leerzeichen vergleichen und nicht den Index.
Das
scanf("%s",&satz[40]);
mit demint x=0;
ist merkwürdig.
Kommt darauf an, was du willst.Lass mal das & und die [40] bei scanf weg.
-
if(x==' '){
gemeint ist sicherlich
if(satz[x]==' '){
Und wie bereits erwähnt, ist mir nicht ganz klar, wieso der eingegebene String an die 40. Stelle des char Arrays satz geschrieben werden soll...
DeshalbDirkB schrieb:
Lass mal das & und die [40] bei scanf weg.
Vielleicht wäre ja auch eine Zeile mit
printf ("\n%s\n", satz);
aufschlussreich und würde Dir andeuten, dass die Eingabefunktion möglicherweise ab dem ersten Leerzeichen nichts mehr haben will.
-
jo danke für die antworten. hab die lösung, jedoch ist eines noch unverständlich. ich mach mal lieber nen zweiten beitrag auf.