4

.C++ で文字列を分割する必要があります。

以下は私の文字列です-

@event.hello.dc1

ここで、上記の文字列を分割し.、そこから @event を取得して@eventから、以下のメソッドに渡す必要があります -

bool upsert(const char* key);

以下は、ここから読んだ後、これまでに取得したコードです-

void splitString() {

    string sentence = "@event.hello.dc1";

    istringstream iss(sentence);
    copy(istream_iterator<string>(iss), istream_iterator<string>(), ostream_iterator<string>(cout, "\n"));
}

しかし、上記の方法は空白に対してのみ機能するため、上記の方法を使用して@event分割して抽出する方法を理解できません...また、以下のように分割してその文字列からすべてを抽出する方法-..

split1 = @event
split2 = hello
split3 = dc1

助けてくれてありがとう..

4

4 に答える 4

12

使用できますstd::getline

string sentence = "@event.hello.dc1";
istringstream iss(sentence);
std::vector<std::string> tokens;
std::string token;
while (std::getline(iss, token, '.')) {
    if (!token.empty())
        tokens.push_back(token);
}

その結果:

tokens[0] == "@event"
tokens[1] == "hello"
tokens[2] == "dc1"
于 2013-10-14T22:11:14.070 に答える
-3

strtok 関数を使用できます: http://en.cppreference.com/w/cpp/string/byte/strtok 次のようなことで使用できます:

 strtok(sentence.c_str(), ".");
于 2013-10-14T22:12:14.867 に答える