如何创建一个字符串数组,将一个字符分隔为“”? C ++

时间:2014-03-27 16:28:24

标签: c++ mobile marmalade

我发现试图帮助我的唯一问题就是这个C++: splitting a string into an array。 我是c ++的新手,我需要一个字符串数组,这些字符串包含了我在这个字符中的每个单词。

以下是代码:

s3eFile* file = s3eFileOpen("chatTest/restrict_words.txt","rb"); 
        int len = s3eFileGetSize(file);

        char* temp = new char[len];
        if (file!=NULL)
        {
            s3eFileRead(temp,len,1, file);
            s3eFileClose(file);
        }

所以我需要让这个临时变成一个数组,这样我才能使用它? 有办法吗?

2 个答案:

答案 0 :(得分:3)

可能是这样的:

ifstream f("chatTest/restrict_words.txt");

vector<string> vec;

while (!f.fail())
{
  string word;
  f >> word; 
  vec.push_back(move(word));
}

答案 1 :(得分:2)

如果这是一个c ++代码,那么我建议转移到std :: string而不是char *并使用强大的std工具,如fstream,stringstream等。您指定的链接提供了有关如何操作的详细答案

    #include <string>
    #include <sstream>
    using namespace std;
    .
    .
    .
    s3eFile* file = s3eFileOpen("chatTest/restrict_words.txt","rb"); 
    int len = s3eFileGetSize(file);

    char* temp = new char[len];
    if (file!=NULL)
    {
        s3eFileRead(temp,len,1, file);

        //Adding Code here
        string str(temp);
        stringstream sstr(str)
        vector<string> str_array;
        string extracted;
        while(sstr.good()){
         sstr>>extracted;
         str_array.push_back(extracted);
        }
        //at this point all the strings are in the array str_array

        s3eFileClose(file);
    }

您可以使用迭代器或像数组str_array[i]

这样的简单索引来访问字符串