Strings rückwärts mittels For-Schleife ausgeben
-
ichbindumm schrieb:
Welche Bedingung soll man einsetzen? Geht das überhaupt?
Die, mit der es korrekt abbricht.
Bye, TGGC (Demo or Die)
-
p.s. for ist keine Funktion
wo wurde das behauptet?
-
hä schrieb:
p.s. for ist keine Funktion
wo wurde das behauptet?
Nirgendwo? Und was konkret ist jetzt dein Problem?
Ganz einfach den angemessenen Smily vergessen "r("
-
willst du ärger junge? wenn ja hetz ich dir TGGC auf den hals.
-
ichbindumm schrieb:
Irgendwie komme ich nicht drauf wie ich einen String mittels einer For-Schleife rückwärts ausgeben soll.
for(size_t i = str.length() - 1; /* ??? */; --i)
Mit einer Schleife und einem Index:
size_t i = str.length(); while (i != 0) { --i; cout << str[i]; }
Mit einer Schleife und Iteratoren:
for (std::string::reverse_iterator it = str.rbegin(); it != str.rend(); ++it) { cout << *it; }
Mit einem Standardalgorithmus:
std::copy(str.rbegin(), str.rend(), std::ostream_iterator<char>(cout));
-
und für einfache leute
string str = "Beispiel"; for(int i = str.length() - 1; i >= 0; i--) { cout << str[i]; }
-
Oder so...
string str = "Hallo"; for (string::reverse_iterator riter = str.rbegin(); riter != str.rend(); riter++) { cout << *riter; }
-
BestBlade schrieb:
und für einfache leute
string str = "Beispiel"; for(int i = str.length() - 1; i >= 0; i--) { cout << str[i]; }
das ist aber ein hack. der rückgabewert von length() ist std::string::size_type und nicht int. und mit std::string::size_type geht dein code nicht mehr.
-
[cpp]
string str = "Beispiel";
for(size_t i = str.length(); i > 0; i--)
{
cout << str[i-1];
}gehts damit? ich habs bisher immer mit "int i" gemacht, kenne weder den datentyp noch die funktionsweise von size_t. aber habs ma ausprobiert, bei mir funkionierts so.
-
string str = "Beispiel"; for(size_t i = str.length(); i > 0; i--) { cout << str[i-1]; }
gehts damit? ich habs bisher immer mit "int i" gemacht, kenne weder den datentyp noch die funktionsweise von size_t. aber habs ma ausprobiert, bei mir funkionierts so.
(hatte cpp vergessen zu schließen
)
-
size_t ist afaik ein vorzeichenloser Ganzzahltyp, der groß genug ist für alle zulässigen Größenangaben - auch wenn das im Standard vermutlich nicht festgelegt ist, dürfte sich idR ein unsigned int dahinter verbergen.
-
ja so geht es.
-
ah, das erklärt warum es die endlosschleife wenn man beim ersten beispiel einfach size_t statt int eingesetzt hat, kann ja dann nicht minus werden.
hoffe man konnte trotzdem helfen
-
BestBlade das steht fast genauso schon im 2. Beitrag dieses Threads.
-
Ich habs gesehn, nur dass die eigentliche frage danach ignoriert wurd und nicht beantwortet, zumindest nicht in der einfachen form wie er sie haben wollte, oder hab ich da was falsch verstanden?