e: Всем спасибо, не знал, что strtok на самом деле изменяет саму строку. Надеюсь, в будущем я буду менее глупым.
Недавно я начал изучать C++ по книге. Сейчас я перешел к главе о разборе строк.
Мое следующее задание — собрать вместе токены строки после их разделения с помощью strtok, но я не понимаю, куда делась остальная часть строки после первого разделителя! Имейте в виду, что я очень новичок в этом, поэтому извините, если это глупый вопрос.
В основном происходит следующее: 1. Я ввожу строку "привет, как дела?" 2. Распечатайте, выходит нормально. 3. Затем я разбиваю его на токены (используя разделители и пробел) 4. Все они печатаются аккуратно 5. Напечатайте строку еще раз, и все, что осталось, это «привет».
Итак, как мне вернуть остальную часть строки?
Это мой код:
char the_string[ 81], *p;
cout << the_string << endl;
cout << "Input a string to parse: ";
cin.getline(the_string, 81);
p = strtok(the_string, ", ");
while (p != NULL) {
cout << p << endl;
p = strtok(NULL, ", ");
}
cout << the_string << endl;
man strtok
и получите основную информацию. - person Rohan   schedule 14.08.2012std::string
иstd::stringstream
? - person Griwes   schedule 14.08.2012