Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » suche eine Funktion mit der ich einen string parsen kann

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
24.04.2006, 20:55 Uhr
Helmut




C++:
#include <iostream>
#include <vector>
#include <sstream>
#include <string>
//#include <algorithm>
//#define SPACELORD            
#define POFFELNATOR
//#define HELMUT
using namespace std;

int gebe_token(const string&, string*, int);

int main()
{
#ifdef SPACELORD                           //von ihm kann man lernen
    vector<string> vec;                    //#include <algorithm> wird hier nicht gebraucht
    string s("das ist ein String mit whitespaces");
    stringstream sstr(s);
    istream_iterator<string> in(sstr),end;
    for(;in != end;++in)
        vec.push_back(*in);
    
    //gefundene Elemente ausgeben
    copy(vec.begin(),vec.end(),ostream_iterator<string>(cout,"\n"));
    cout<<endl;
#endif/*SPACELORD*/
     int token = 0;  
     int index = 0;
     do{
#ifdef POFFELNATOR                           //es funktioniert!
    string satz = "Dies ist ein Test";
    string sub[4];               //
    int schritt = (int)satz.find_first_of(" ",index);
    sub[token] = satz.substr(index,schritt-index);
    index = schritt +1;
    cout << sub[token] << endl;
#endif/*POFFELNATOR*/
     }while(++token < 4);
#ifdef HELMUT                      //Fehler nur bei mir selbst gefunden
#define TOKEN_MAX 100              // nicht string s2[TOKEN_MAX];
                                   // sondern string s2[TOKEN_MAX+1];
                                   //wegen der Bedingung  s2[i].size();
                                   //und return (tokenanzahl - 1)
    string s1= "Jede Menge Token --- Jede Menge Token fast jede Menge Token";

    string s2[TOKEN_MAX+1];
        
    for(int i = 0, tokenanzahl = gebe_token(s1, s2, TOKEN_MAX); s2[i].size(); ++i)
        cout << s2[i] << endl;

#endif/*HELMUT*/
    return 0;
}
int gebe_token(const string& string_in, string* s_out, int token_max)
{
   istringstream ist(string_in);
   int tokenanzahl = 0;
   while((ist >> s_out[tokenanzahl++]) && (tokenanzahl < token_max)) ;  
   return (tokenanzahl - 1);
}                          


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: