003
22.03.2008, 00:20 Uhr
~array
Gast
|
C++: |
char satz(char satz1); void size(int x);
int main() { int i,x; x=0; char satz1[20]; printf("Geben sie den Satz ein:"); gets(satz1);
size(strlen(satz1));
for(i=0;satz1[i]!='\0';i++) { if(satz1[i]=='e') { x=x+1; printf("%i\n",x); } } system ("Pause"); return 0; } void size(int x) { printf("Der Satz besteht aus %i Zeichen.\n",x); }
|
Hier mein Programm es klappt auch. Ich frage mich die ganze Zeit wie ich in der if- Anweisung eine Zahl satz[i] mit einen Buchstaben vergleichen kann. Was mir auch noch unklar ist, ist die Bedingung bei der die for Schleife abschließt. .Ich weiss, dass ! negiert . Wenn i an der Stelle von’ \0’ ist soll die Schleife enden .Ich habe aber den Eindruck das i doch mit \0 verglichen wird oder? Der Zustand das i nicht \0 ist dann doch schon am Anfang geben. Ich verstehe auch nicht wenn ich i satz[i] übergebe(in der if Anweisung) warum überschreibt es nicht die Buchstaben im satz[] und füllt sie mit den hoch gezählten Werten aus der for Schleife. Wie ist es möglich das ich eine int mit ein Buchstaben vergleichen kann . Ich habe mir das auch schon als Tabelle vorgestellt. Erst werden die Buchstaben eingelesen und an jedem Speicherplatz steht ein Buchstabe, dann folgt die for Schleife und da verweise ich ja auf den satz[i]!=’\0’ meine Endbedingung .Da ich vor der for Schleife mein Satz der Funktion übergeben habe, wird meine Ausgabe nicht verändert das ist doch so weit richtig oder? Das überschreiben des satz mit den int Werten bleibt somit Folgenlos aber wie kann ich Zahlen an Stelle der Buchstaben setzen und sie dann vergleichen? Dieser Post wurde am 22.03.2008 um 15:01 Uhr von Windalf editiert. |