Ein Zeichen aus einem String abrufen
-
Hallo,
da ich dieses Thema, "Ein Zeichen aus einem String abrufen" aus dem Buch brauche,würde ich eure Hilfe in Anspruch nehmen

Es geht um bsp.:string str("some string"); for(string::size_type ix = 0; ix != str.size(); ++ix) cout<< str[ix] <<endl;Mir geht es um das str[ix],denn normaler weise würde ich sofort glauben,dass im string str das ix enthalten wäre oder schon ist.
Könntet ihr mir dazu bitte ein stücken erklären
Auch mit ...
str[some * someval] = someval;... kenne ich mich komplett nicht aus

Vielleicht könntet ihr mir da bitteschön irgendwie helfen

MfG. Martin
-
Für die Klasse std::string ist der Operator [] überladen.
Konkret heißt das, dass du den String wie ein Array nutzen kannst.std::string theString = "Hello"; theString[0] == "H"; theString[1] == "e"; //und so weiter
-
was man natürlich nur dann auch richtig versteht, wenn man auch pointer versteht.
-
KennerDerStrings schrieb:
Für die Klasse std::string ist der Operator [] überladen.
Konkret heißt das, dass du den String wie ein Array nutzen kannst.std::string theString = "Hello"; theString[0] == "H"; theString[1] == "e"; //und so weiterDanke,aber das meinte ich nicht,sondern ...
string str = "blabla..."; str[ix]
-
Was genau verstehst du denn jetzt nicht??!
Es gilt natürlich auch:std::string theString = "Hello"; theString[0] == "H"; theString[1] == "e"; int ix = 2; theString[ix] == "l"; theString[ix+2]" == "o";
-
Martin Braun schrieb:
Danke,aber das meinte ich nicht,sondern ...
string str = "blabla..."; str[ix]Das ix'te Zeichen des Strings.
Manchmal glaube ich ja, dieser Herr Braun ist ein Troll

-
Krux schrieb:
was man natürlich nur dann auch richtig versteht, wenn man auch pointer versteht.
Nope. Zeiger und Arrays sind zwei verschiedene Paar Schuhe. Sie sind sich nur vom Handling her teilweise recht ähnlich.
-
Also danke erstmals

Zweitens habe ich schon was kleines gecodet...string vehicle("Hello"); string salary = "World"; string ruf("!"); string summe = vehicle + " " + salary + ruf; cout<<summe; string::size_type snow = 0; while(snow < 10) { ++snow; cout<<vehicle[snow]; }Aber als Ausgabe kommt was ganz komisches raus

Wie ist das eigentlich gemeint?So Long
-
Martin Braun schrieb:
Aber als Ausgabe kommt was ganz komisches raus

Könntest du dir angewöhnen, ordentliche Fehlerbeschreibungen zu liefern?
vehicle hat nur 5 Zeichen, also sollte snow nicht weiter als bis 4 laufen.
-
[quote="MFK"]
Martin Braun schrieb:
vehicle hat nur 5 Zeichen, also sollte snow nicht weiter als bis 4 laufen.
Das hab ich gemeint.
Könntest du mir das bitte kurz und deutlich erklären?
-
Was willst du denn da erklärt haben?
#include <iostream> #include <string> using namespace std; int main( ) { string vehicle = "Hello"; string salary = "World"; string ruf = "!"; string summe = vehicle + " " + salary + ruf; cout << summe << endl << endl; for( string::size_type snow = 0; snow < vehicle.length( ); ++snow ) { cout << vehicle[ snow ]; } }Greetz, Swordfish