Teil eines Strings extrahieren...

Hallo,

also ich würde statt

system( "PAUSE" );

lieber dies nehmen:
Code:
cout << "Hallo! Bitte drücken Sie Enter um fortzufahren";
getchar();

Was genau funktioniert denn nicht ?
Gruß
Klaus
 
Einen wunderschönen guten Tag,

wie es mir scheint ist noch nicht alles klar. Erstmal ist der gesamte Quellcode ein rumgewurstel aus C und C++. Wenn du C++ verwenden willst, dann solltest du das auch konsequent machen.

Um in C++ Strings verwenden zu können, musst du den Header string einbinden. Dieser und die dazugehörige Bibliothek sollte jeder moderne Compiler mitliefern. Du verwendest meines Wissens Dev-C++ und MINGW. Dort ist das vorhanden. Also genügt:

C++:
#include <string>

Dann weiß ich nicht, was du mit der Zeile:

C++:
string strjasfkljasgj90lsdkfj;

bewirken willst. Hier wird eine Variable mit der Bezeichnung strjasfkljasgj90lsdkfj vom Typ string angelegt. Aber das ist ja deine Zeichenkette. Dass er hier

C++:
string strTest = strjasfkljasgj90lsdkfj.substr(11,2);

dann nichts auslesen kann, ist dann auch klar. In den String ist ja nichts drin. Du musst also zunächst einen Quellstring mit deiner Zeichenkette anlegen:

C++:
string source = "strjasfkljasgj90lsdkfj";

Dann kannst du mit der Methode substr(pos, n) einen Teilstring erzeugen, der an der Position pos des Quellstrings beginnt und die n darauffolgenden Zeichen umfasst. Diesen kannst du dann in einen Zielstring speichern:

C++:
string target = source.substr(11,2);

Die Ausgabe mit printf() sollte in der Form nicht funktionieren. Besser ist es den Standardausgabestream cout zu verwenden. Dieser ist typsicher und leichter zu handhaben:

C++:
cout << target;

Wenn du nun damit dein Programm zusammenstellst, solltest du die Ausgabe "sg" bekommen, da "s" an der 11. Position des Quellstrings steht und der Zielstring 2 Zeichen lang sein soll. Damit wird noch das nachstehende "g" gespeichert. Ich denke nicht, dass dies die Funktion ist, die du haben wollest. Oder ist die Zahl immer exakt an der gleichen Position? Ansonsten solltest du nach den ersten Aufkommen einer Ziffer im String suchen. Du erhälst eine Position, wo deine Zahl beginnt. Dann suchst du nach dem ersten Zeichen beginnend bei dieser Position, welches keine Ziffer ist. Du erhälst die Position, vor welcher deine Zahl endet. Das Ganze kannst du mit den Methoden find_first_of() und find_first_not_of() realisieren.

Gruss
Mizi
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück