Ergebnis 1 bis 6 von 6

Thema: [C++] String anhand von Leerzeichen teilen.

  1. #1
    Shogun Avatar von DarkSyranus
    Registriert seit
    28.03.2006
    Ort
    ::1/128
    Alter
    25
    Beiträge
    3.446
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard [C++] String anhand von Leerzeichen teilen.

    Ich bin grade völlig am verzweifeln ...

    Kurz zum Aufbau.
    Ich habe einen String.

    Anzahl Steine

    Stein 1 Farbe 1
    Stein 1 Farbe 2
    Stein 1 yPosition 1
    Stein 1 xPosition 1
    Stein 1 yPosition 2
    Stein 1 xPosition 2
    Stein 1 Tausch

    Stein 2 Farbe 1
    Stein 2 Farbe 2
    Stein 2 yPosition 1
    Stein 2 xPosition 1
    Stein 2 yPosition 2
    Stein 2 xPosition 2
    Stein 2 Tausch
    ...
    Das ganze ist ein String, der mit Leerzeichen hintereinander steht.

    Nun versuche ich mit einem Schleifendurchlauf die Werte von jedem Stein auszulesen und zu verwenden.
    Code:
    for&#40;short i = 0; i < string&#91;0&#93; -'0'; i ++&#41; &#123; /* ... */ &#125;
    Meine Frage ist nun, wie ich jeweils die Werte des Steines herausbekommen kann.
    Mit Positionen im String ist es nicht möglich, da die Positionen der Steine sowohl 1- als auch 2-stellig sein können.
    Also habe ich es mit strtok() versucht ...
    Nur will diese Funktion einen char * str haben.

    Bestimmt gibt es eine Möglichkeit, wie ich so einen Typ auf meinen String legen kann, aber ich bin in C++ immernoch nicht so bewandert.
    Hat da jemand einen kleinen Tipp, oder einen Vorschlag, wie man es anders lösen könnte?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Code:
    #include <vector>
    #include <string.h>
    
    using namespace std;
    vector<string> explode&#40;char suche, string zeichenkette&#41;
    &#123;
    string temp = "";
    vector<string> ergebnis;
    for&#40;short i = 0; i < zeichenkette.length&#40;&#41;; i++&#41;
    &#123;
         if&#40;zeichenkette&#91;i&#93; == suche&#41;
         &#123;
               ergebnis.push_back&#40;temp&#41;;
               temp = "";
        &#125;
        else
        &#123;
               temp += zeichenkette&#91;i&#93;;
        &#125;
    &#125;
    return ergebnis;
    &#125;
    Dürfte halbwegs gehen.

    Viele liebe Grüße
    The User

    Edit: mit kleiner Änderung klappts jetz!

  3. #3
    Shogun
    Themenstarter
    Avatar von DarkSyranus
    Registriert seit
    28.03.2006
    Ort
    ::1/128
    Alter
    25
    Beiträge
    3.446
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard

    Öhm, ja ok, ich kam, ich sah, ich scheiterte am verstehen O.o
    Zuersteinmal: Ich hab noch keinen blassen schimmer von Vektoren, aber ich bin lernfreudig =)

    Also, wie rufe ich das genau auf?
    Ich verstehe dass jetzt so, dass zuerst bis zu Zeichen gesucht wird, dass zurückgegeben werden soll. Alle Zeichen bis dahin werden in temp gespeichert.
    Wenn das Trennzeichen gefunden wurde wird die Temp Variable geleert und der bisherige Fund zurückgegeben.

    Aber wie erhalte ich dann noch die anderen Trennungen?
    Ich brauche ja praktisch alle Werte ...

    Post Scriptum: Vielen Dank schonmal !!

  4. #4
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Du kannst auf Vektorenelemente (bzw. auch bei allen anderen sequenziellen Containern (list, deque)) mit dem Indexoperator genauso wie bei arrays arbeiten, also mit
    meinvektor[12] = "hallo";
    Geht auch mit Iteratoren, das ist aber nur kompliziert und ic werde da immer Wahnsinnig!
    Bei der Deklaration gibst du in den <>-Klammern den Typ der Elemente an. (der kann auch wiederum Vektor oder array sein)
    Dann musst du natürlich #include <vector> angeben, damit überhaupt was läuft.
    Mit .push_back() kannst du dem Vektor ein Element dranhängen(mit pop_back() gehts wieder weg).
    Bei list und deque gehen noch einige Sachen mehr, aber hier reicht das ja mit einem Vektor.
    Man findet noch so einige Sachen: .size könnte ganz praktisch sein.
    Es ist für dich damit einfach einfacher, so ein Feld im Aufbau zu verändern.
    Bei deque und list kannst du dann sogar Element mittendrin und ganz vorne löschen oder einfügen!
    Bei arrays geht das halt nicht, außer über Schleife und dann kopieren!

    Viele liebe Grüße
    The User

    Edit:
    In PHP ist das push_back array_push, da ist das halt in die normalen arrays mehr oder minder integriert, versteh PHP wer will!

  5. #5
    Shogun
    Themenstarter
    Avatar von DarkSyranus
    Registriert seit
    28.03.2006
    Ort
    ::1/128
    Alter
    25
    Beiträge
    3.446
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard

    Hey, danke dir, funzt ohne Probleme

  6. #6
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Wer C++ lernen möchte, was ich das ja auch tue, dem kann ich ja keine Hilfe verwehren!
    Viel Erfolg,
    The User

Ähnliche Themen

  1. Konstate anhand von varaible auslesen
    Von Greg10 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 07.02.2008, 21:07
  2. String mehrmals teilen
    Von Telmata im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 29.08.2007, 16:19
  3. logs anhand ip auswerten
    Von auswertung im Forum Webhoster - Provider - (free) Webspace - Server - Domain
    Antworten: 1
    Letzter Beitrag: 16.07.2007, 11:07
  4. Dateien anhand einer Liste löschen
    Von Chris2310 im Forum Computer - Internet Forum
    Antworten: 11
    Letzter Beitrag: 23.12.2006, 19:33
  5. Bild exakt teilen
    Von DornigerWeg im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 3
    Letzter Beitrag: 08.10.2006, 15:46

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •