Strings rückwärts mittels For-Schleife ausgeben
-
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?