string auslesen von bis
-
Hi!
Ich hab folgendes Problem... Ich brauche einen Code, mit dem man einen String auslesen kann und der dann den Inhalt von einem ganz bestimmten Zeichen bis zu einem anderen Zeichen in einen neuen String lägt... wie kann ich das realisieren oder hat hier schon jemand nen Quellcode parat? Wäre echt nett! Danke
-
std::string oder char[]?
MfG SideWinder
-
std::string... also sind mehrere... das Programm liest eine datei ein und packt diese je nach wort in ein array namens datei mit 20000 stellen... und nun soll der zum beispiel wenn in 3 Arrays "Hallo du da" steht nicht mehr das stehen sonder er soll es umwandeln in Hallo du da ohne die "... Wie realisiere ich das genau?
-
Naja mit std::string hast du ja kein Problem:
size_type begin = str.find_first_of('\"'); size_type end = str.find_last_of('\"'); size_type len = end - begin; str = str.substr(begin,len);
MfG SideWinder
-
Funktioniert kein Stück bei mir... Wie muss ich das anwenden, wenn der Text in einem string namens test sitzt? und der string test beinahltet folgendes:
string test="hust\"ladida\"gehweg";
-
Poste mal den Quellcode in dem du mein Beispiel angewendet hast. Eigentlich sollte das schon funktionieren
Ich verschieb dich mal ins Standard-C++-Forum, ist ja kein konsolenspezifisches Problem.
MfG SideWinder
-
Dieser Thread wurde von Moderator/in SideWinder aus dem Forum DOS und Win32-Konsole in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
wenn du den string,in einzelne char´s zerlegst, kannst du die char nach deinem
zeichen durchsuchen, und hast die position deines zeichensc++ code:
#include <string>
#include <iostream>using namespace std;
string wort;
char buchstabe(2);//char arrayfor(int i=0;i<wort.size();i++)//wort.size()ist anzahl der buchstaben
(
// buchstabe(i) enthält das i´te zeichen des wortes
cout<<buchstabe(i)<<endl;//ausgabe des arrays
)die klammersybole stimmen nicht!aufpassen
aber mit arrays und for schleifen kennst du dich ja aus!viel spass
-
Ich hab das mal so ausprobioert:
size_t begin = Source.find_first_of("int"); size_t end = Source.find_last_of(";"); size_t length = end - begin; variable = Source.substr(begin,length);
Aber scheint nicht zu funktionieren... müssen das chars sein? oder können es auch strings sein?
-
Achne... DFUnktioniert doch! Seh ich gerade... problem ist nur, das er nicht das letzte ";" nehmen soll, sondern das nächste...
-
Source.find(';', begin);
-
und wie eht es denn aus wenn ich so einen string habe:
From: XXXXX@XXXXX.com[cpp]
size_t begin = zeile.find_first_of("From:");
size_t end = zeile.find_last_of("\n");
size_t length = end - begin;
from = zeile.substr(begin,length);
cout <<"Absender: "<< from << endl;er soll mir das den Text nach "From:" bis zum zeilenende ausgeben..er macht es aber nicht...sondern haut das "From:" mit aus
..wäre für ne kleine hilfe sehr dankbar
-
du musst:
find_first_not_of("From: ");
-
danke schön!!!..noch eine kurze frage
hier hab ich so eine zeile
Date: Thu, 7 Apr 2005 21:21:29 -0700Hier mein code:
size_t begin = zeile.find_first_not_of(",");
size_t end = zeile.find_last_of("-");
size_t length = end - begin;
date = zeile.substr(begin,length);
cout <<"Datum: "<< date << endl;wie sage ihm jetzt aber das er die Uhrezit nicht mit raushauen soll
ala
size_t end = zeile.find_last_not_of('int:int:int');
-
naja das ist ja sicher alles ein string!
Somit kennt er int da nicht, die uhrzeit is auch nur nen string!Die soll er also nicht mit anzeigen?
Wenn der String IMMER so aufgebaut ist, such bis zum ersten Doppelpunkt, und ziehe davon 3 ab!
-
wie suche ich denn nach dem doppelpunkt..weil es ist ja der 2te doppelpunkt und nicht der erste??
-
Vielleicht sollte man sich mal informieren, was find_last_not_of wirklich macht...
MSDN
Dennfind_first_not_of("From: ");
macht unter Umständen nicht das, was es soll.
-
ok habs..thx!!!!!!!!!!!!1
-
Achtung! schrieb:
Vielleicht sollte man sich mal informieren, was find_last_not_of wirklich macht...
MSDN
Dennfind_first_not_of("From: ");
macht unter Umständen nicht das, was es soll.
erklärs bitte!
int main(int argc, char* argv[]) { string test="Date: Thu, 27 Jan 2005 21:03.01-0700"; size_t eras = test.find_first_of(":")+2; //date: loeschen, fuer suche nach : test.erase(0,eras); size_t end = test.find_first_of(":")-4; //: suchen, und 4 zeichen zurueckgehen size_t begin = test.find_first_of(",")+2; //, suchen, 2 zeichen nach vorn gehen size_t len = end-begin; string test2 = test.substr(begin,len+1); getch(); return 0; }
wenn string immer gleich aufgebaut ist, hab ich mir das überlegt( Ungetestet, und gibt sicher bessere methoden)
-
hab des jetzt so
size_t begin = zeile.find_first_not_of(", ");
size_t end = zeile.find_last_of(":");
size_t length = end - begin-5;
date = zeile.substr(begin,length);
cout <<"Datum: "<< date << endl;nur macht er die ausgabe vorne wieder mit
Date: thu, 7.12.2004er soll doch den anfang aber nach dem komma machen....
-
macht er bei meinem code auch!