Habe 2 Programme die ich nicht verstehe.
1->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Code:
#include <iostream>
#include <string>
int main()
{
using namespace std;
cout << "Enter a word: ";
string word;
cin >> word;
char temp;
int i, j;
for (j = 0, i = word.size() - 1; j < i; --i, ++j)
{ // start block
temp = word[i];
word[i] = word[j];
word[j] = temp;
} // end block
cout << word << "\nDone\n";
// cin.get();
// cin.get();
return 0;
}
Enter a word: stressed
desserts
Done
Also was passiert hier im Block:
{
temp = word[i]; // 'd' geht in temp oder ?
word[i] = word[j]; //werden hier 's' und 'd' vertauscht ?
word[j] = temp; //werden hier 'd' und 's' wieder vertauscht ?
}
Es dreht sich doch alles im Kreis oder net ? (anscheinend nicht)
2->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Code:
#include <iostream>
int main()
{
using namespace std;
char ch;
int count = 0;
cout << "Enter characters; enter # to quit:\n";
cin >> ch;
while (ch != '#')
{
cout << ch;
++count;
cin >> ch;
}
cout << endl << count << " characters read\n";
// get rid of rest of line
// while (cin.get() != '\n')
// ;
//cin.get();
return 0;
}
Enter characters; enter # to quit:
see ken run#really fast
seekenrun
9 characters read
und was passiert hier im Block:
{
cout << ch;
++count;
cin >> ch;
}
Wenn man zum beispiel nur ein Symbol eingibt also:
Enter characters; enter # to quit:
S //dann ist mir alles klar
Aber wenn man eine ganze Zeile eingibt also :
see ken run
Das programm vergleicht doch immer nur 1 Symbol(mit '#') oder ?
Zuerst 's'dann 'e' , wieder 'e' , 'k', 'e' ,'n' usw.
Also->
while ('s' != '#') //das ist TRUE
im block dann ->
verstehe ich nicht was da passiert, da(cmd) wird ja sofort die ganze Zeile angezeigt :see ken run .Und ich kann wieder was eingeben
Passierts so schnell dass ichs nicht sehen kann?
wie auch immer,weiter kommt ja "++count" hier bekommt count +1 ok (wir sind immer noch bei 's') so .Aber jetzt kommt ja cin >> ch;.Wie kommt das programm jetzt an 'e'. ?
Danke






