2016-04-05 3 views
-2

Ich habe einen String-VariableShop eine Zeichenfolge in ein Array

string = "Dies ist meine Zeichenfolge"

ich von einem Leerzeichen in ein Array getrennt jedes Wort gespeichert werden soll

  • Array [0] = "Dies";
  • Array [1] = "ist";
  • Array [2] = "mein";
  • Array [3] = "Zeichenfolge";
+5

Mögliche Duplikate von [Wie tunke ich eine Zeichenfolge in C++?] (Http://stackoverflow.com/questions/53849/how-do-i-otokenize-a-string-in-c) – Pierre

+0

Vielleicht dieser Beitrag kann nützlich sein: [Eine Zeichenfolge in C++ aufteilen?] (http://stackoverflow.com/a/236803/6032132) – tetouani63

+0

Können Sie bestätigen, dass das anfängliche führende Leerzeichen in Ihrer Zeichenfolge absichtlich ist? –

Antwort

0

Zuerst müssen Sie "sstream" Klasse wie umfassen:

#include <sstream> 

Dann Code unten verwenden:

string str= "this is my string" 
    int len = str.length(); 
    string arr[len]; 
    int i = 0; 
    stringstream ssin(str); 
    while (ssin.good() && i < len){ 
     ssin >> arr[i]; 
     ++i; 
    } 
    for(i = 0; i < len; i++){ 
     cout << arr[i] << endl; 
    } 
0

Für diesen Fall können Sie Zeichenfolgebegrenzer Konzept

strtok(const char * str, int delimiter); 

für Ihren Fall verwenden, ist Trennzeichen "white space".

Programm:

#include <stdio.h> 
#include <string.h> 

int main() 
{ 
    char str[] ="This a sample string"; 
    char * output_after_delimiter_applied; 
    char *out_arr[4]; 
    int i=0; 

    printf("The original string is %s\n", str); 

    output_after_delimiter_applied = strtok (str," "); 

    while (output_after_delimiter_applied != NULL) 
    { 
     out_arr[i] = output_after_delimiter_applied; 
     output_after_delimiter_applied = strtok (NULL, " ");  
        // NULL parameter is for continuing the search 
        // delimiter is "white space". 
     i++; 
    } 

    for(i=0; i < 4 ; i++) 
     printf("%s\n", out_arr[i]); 

    return 0; 
    } 

können wir jede nicht hinzufügen. von Trennzeichen mit doppelten Anführungszeichen. Es ist wie die Suche nach Zeichenketten (Trennzeichen).