Teil eines Strings extrahieren...

reto-meier

Mitglied
Schönen guten Tag miteinander!

Ich habe ein kleines Problem... Ich programmiere in C++.

Ich möchte nun aus einem vorhandenen String ein wichtiges "schlag-wort/zahl" vom rest extrahieren. Die aufgabenstellung könnte wie folgt aussehen: (Bsp.)

- Definiere einen String mit folgendem Inhalt: „XYZXYXZYXZYXZSendepegel : 95% hgh“
Was mich hier interessiert ist die grösse des Sendepegels also ist es meine absicht, hier den Wert 95 zu extrahieren.
- danach möchte ich noch eine Ausgabe am Bildschirm, welche mir den wert anzeigt.

Hoffe auf eure Unterstützung und Grüsse aus der Schweiz:p

Reto
 
Moin,

je nachdem könntest Du bspw. sowas wie SUBSTR benutzen oder auch die beliebten Pattern zum splitten des String! Das hängt aber sicher vom jeweiligen Aufbau ab ...

Gruß
Klaus
 
Moin,

je nachdem könntest Du bspw. sowas wie SUBSTR benutzen oder auch die beliebten Pattern zum splitten des String! Das hängt aber sicher vom jeweiligen Aufbau ab ...

Gruß
Klaus


Vielen Dank für den Hinweis...hab kurz nachgeschaut welcher Befehl besser passt.
Hab mich für den SUBSTR-Befehl entschieden...Hab jedoch nicht herausgefunden wie ich nach einer Zahl "suchen" kann....:suspekt:
 
Hallo,

nach einer Zahl suchen ? ? ?:suspekt:

Normalerweise gibst Du dem substr zwei Parameter mit:
Code:
string strIrgendwas; // bsp. 100 Zeichen lang

// kopiert ab Position 20 die nächsten 10 Zeichen!
string strTest = strIrgendwas.substr( 20, 10 );

Wenn in Deinem String als Zahlwerte NUR die Gesuchte vorkommt, kannst Du ihn bspw. auch zeichenweise durchlaufen und mit IsDigit prüfen ! !

gruß
Klaus
 
Hallo,

nach einer Zahl suchen ? ? ?:suspekt:

Normalerweise gibst Du dem substr zwei Parameter mit:
Code:
string strIrgendwas; // bsp. 100 Zeichen lang

// kopiert ab Position 20 die nächsten 10 Zeichen!
string strTest = strIrgendwas.substr( 20, 10 );

Wenn in Deinem String als Zahlwerte NUR die Gesuchte vorkommt, kannst Du ihn bspw. auch zeichenweise durchlaufen und mit IsDigit prüfen ! !

gruß
Klaus

Oke jetzt ist mir dies klar geworden..danke erstmal.
Nun: wie kann ich die kopierten Zeichen ausgeben?

Ich habe es so probiert:

printf("%s",strTest);
string strTest = dddddddddd90dkjfasdl.substr( 11, 2 );

Das Fenster schliesst jedoch ohne die beiden zeichen auszugeben...
 
Hallo,
schlauer war es so herum:
Code:
string strTest = dddddddddd90dkjfasdl.substr( 11, 2 );
printf("%s",strTest);

Merke - immer erst erst die Variable setzen und dann ausgeben :p

Gruß
Klaus
 
Hallo,
ich kenne jetzt den umliegenden Code nicht, daher kann ich nur raten!
Dann musst Du halt das Schließen des Fenster, in dem Du die Werte darstellst, unterbinden!
Bspw. durch eine längere Schleife, die sonst nix tut oder ggf. den Thread (falls es einer ist) mit sleep(xx) ruhen lassen oder auf eine Eingabe des Users zum Beenden abwarten ....
Gruß
Klaus
 
Hallo,
ich kenne jetzt den umliegenden Code nicht, daher kann ich nur raten!
Dann musst Du halt das Schließen des Fenster, in dem Du die Werte darstellst, unterbinden!
Bspw. durch eine längere Schleife, die sonst nix tut oder ggf. den Thread (falls es einer ist) mit sleep(xx) ruhen lassen oder auf eine Eingabe des Users zum Beenden abwarten ....
Gruß
Klaus

hmmm...stelle meinen code mal ins netz.. habe diese dinge schon ausprobiert...gescheiter werde ich noch nicht.

CODE:

//Programmier-Projekt von Reto Meier, 25.3.09
//Aufgabe3: Text-String Verarbeitung, Ein Teil des Strings soll extrahiert werden.

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;
string strjasfkljasgj90lsdkfj;

int main(int argc, char *argv[])
{ while(1)
{
string strTest = strjasfkljasgj90lsdkfj.substr(11,2);
printf("%s",strTest);
system("PAUSE");
return EXIT_SUCCESS;
}
}
 

Neue Beiträge

Zurück