Arbeiten mit der Klasse "string"

PommeDeTerre

Grünschnabel
Hi,

ich bin ganz neu hier und versuche einfach mal mein Problem zu beschreiben:

Also in meinem Programm müssen 2 Namen eingegeben werden und ich habe dies erst mit 2 ganz normalen char-arrays und cin versucht. Jedoch gibt es ja dann Probleme, wenn man Leerzeichen mit eingibt (Bsp: Max Mustermann - hier würde Max im ersten array sein und Mustermann im 2tem arry).

Nun hab eich von der klasse string gehört und dies klappt soweit auch ganz gut wenn ich mache:
Code:
...
int main ()
{
    string name1;
    char feld1[20];
    string name2;
        
    cout << "Geben sie den ersten Namen ein: ";  
    getline(cin,name1);
    cout << "Geben sie den zweiten Namen ein: ";
    getline(cin,name2);
    
     cout << endl << "Ihre Eingabe: " << name1 << " und " << name2 << endl;
...
Die Ausgabe würde Max Mustermann zb als vollen ersten Namen ausgeben und den zweiten Namen auch korrekt ausgeben.

Im weiterem Verlauf meines Programmen, möchte ich allerdings auf die ASCII-zeichen der einzellnen Buchstaben jedes Strings drauf zugreifen können.

Kann mir jemand helfen, wie ich da vorgehen muss?
Muss ich den string erst in ein char-feld kopieren? Wenn ja, wie? oder welche andere Lösung gibt es hier?
 
Guck mal in der MSDN unter basic_string. Da stehen alle Methoden die du brauchst. Du bekommst z.B. mit c_str() einen konstanten CString zurück oder kannst mit at(int pos) das Zeichen an der Position pos zurückgeben etc.
 
Ein String in im Prinzip nicht anderes als ein Null-Terminiertes Char Array.
Welche Stringklasse hast du denn genommen? Eventuell kannst du mit der SubString-Methode auf die ein Zeichen zugreifen. Aber ich glaube du müsstest da über die Suche ne Menge zu finde?!

Greetz...
Sinac
 
Du kannst auch einfach wie beim char-array mit dem [ ]-operator auf die einzelnen Chars zugreifen.

Achtung, im Gegensatz zum "at" prüft [ ] nicht, ob über die Länge raus gelesen wird.
 
Zurück