将字符串存储到数组中

时间:2016-04-05 09:48:25

标签: c++ arrays string iostream

我有一个字符串变量

string =“这是我的字符串”

我想将由空格分隔的每个单词存储到数组

  • 数组[0] = “这个”;
  • 阵列[1] = “是”;
  • 阵列[2] = “我”;
  • 阵列[3] = “字符串”;

3 个答案:

答案 0 :(得分:0)

首先,您必须包含" sstream"类似:

#include <sstream>

然后使用以下代码:

    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;
    }

答案 1 :(得分:0)

您可以将std::copystd::istringstreamstd::istream_iterator以及std::back_inserter一起使用:

vector<string> v;
istringstream ss(" this is my string");
copy(istream_iterator<string>(ss), istream_iterator<string>(), back_inserter(v));

LIVE

答案 2 :(得分:0)

对于这种情况,您可以使用字符串分隔符概念

 strtok(const char * str, int delimiter);

对于你的情况,分隔符是“空格”。

程序:

 #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;
  }

我们可以添加任何号码。双引号中的分隔符。它就像字符串(分隔符)搜索。