C ++ получить часть строки - PullRequest
0 голосов
/ 12 июня 2011

Как получить первое слово строки в C ++?

Например,

"abcde fghijk"

Я хотел бы получить abcde.И что мне делать, чтобы получить fghijk?Есть ли для этого удобная функция или я должен просто ее кодировать?

Ответы [ 3 ]

4 голосов
/ 12 июня 2011

Использовать сплит ...

#include <boost/algorithm/string.hpp>
std::vector<std::string> strs;
boost::split(strs, "string to split", boost::is_any_of("\t "));
2 голосов
/ 12 июня 2011
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <vector>

std::vector<std::string> get_words(std::string sentence)
{
        std::stringstream ss(sentence);
        std::istream_iterator<std::string> begin(ss);
        std::istream_iterator<std::string> end;
        return std::vector<std::string>(begin, end);
}
int main() {
        std::string s = "abcde fghijk";
        std::vector<std::string> vstrings = get_words(s);

        //the vector vstrings contains the words, now print them!
        std::copy(vstrings.begin(), vstrings.end(), 
                  std::ostream_iterator<std::string>(std::cout, "\n"));
        return 0;
}

Вывод:

abcde
fghijk

Демонстрация онлайн: http://ideone.com/9RjKw

2 голосов
/ 12 июня 2011

Использовать строковые потоки (<sstream> заголовок)

std::string str ="abcde fghijk";
std::istringstream iss(str);
std::string first, second;
iss >> first >> second;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...