String bearbeiten



  • Hallo C++ Gemeinde!

    Dies ist mein erster Beitrag in diesem Forum. Ich habe folgendes Problem zu lösen. Ich habe ein String vorliegen der folgendermaßen aufgebaut ist. Es gibt jeweils drei Char Zeichen, danach folgt ein Punkt und wieder drei Zeichen.

    Also z.B so: 654.134.435.54.107.23.543.667.346

    Ich möchte nun diesen String aufteilen in, String1=654, String2=134, String3=435 usw.

    Wie kann ich das am besten bewerkstelligen? Ich sollte dazu sagen dass es mir egal ist ob es in nativen C++ Code oder in C++/CLI programmiert wird.

    Könnt ihr mir bitte helfen?

    Vielen Dank



  • Ganz einfach:

    String ^Foo = L"654.134.435.54.107.23.543.667.346";
    cli::array<String ^> ^Bar = Foo->Split(L'.');
    

    MfG



  • mit der stl: daten in nen stringstream kopieren, nen vector<int> anlegen, nen input_iterator auf cin ansetzen mit delemiter='.', nen pushback_iterator auf den vector ansetzen, mit copy kopieren, schon fertig.

    mit c: string kopieren und strtok nehmen

    mit cli: String.Split()

    mit boost: boost::tokenizer

    ups, viel zu langsam.



  • @rand, @volkard

    vielen Danke für eure Hilfestellung, nun funktioniert es 🙂 . Habe es nach der CLI Methode angewandt.



  • ist es nun möglich den neu erzeugten StringArray in ein intArray umzuwandeln?

    ich habe es so versucht:

    for (int l=0; l<10; l++) { hilfs[l]=atoi(Bar[l]);}
    

    was der Compiler aber nicht annimmt da der String ein .Net verwaltetes Objekt ist vermute ich.



  • Probier es mal mit:

    for (int l=0; l<10; l++) 
              hilfs[l]=System::Convert::ToInt32(Bar[l]);
    


  • @ich988

    danke werde ich heute testen


Anmelden zum Antworten