#include <bits/stdc++.h>
using namespace std;
vector<string> split(string str, char delimiter)
{
vector<string> internal;
stringstream ss(str);
string tok;
while(getline(ss, tok, delimiter))
{
internal.push_back(tok);
}
return internal;
}
int main()
{
freopen("in", "r", stdin);
freopen("out", "w", stdout);
int tt;
scanf("%d", &tt);
for (int qq = 1; qq <= tt; qq++) {
printf("Case #%d: ", qq);
char s[1234];
stringstream ss;
gets(s);
for(int j = 0; s[j] ; j++) ss << s[j];
vector<string> w = split(ss.str(), ' ');
for(int i = 0; i < w.size(); ++i)
{
printf("%s ", w[i].c_str());
}
printf("\n");
}
return 0;
}
InputВ C++, получает() пропускает линию
5
this is a test
foobar
all your base
class
pony along
Выход
Case #1:
Case #2: this is a test
Case #3: foobar
Case #4: all your base
Case #5: class
Я новичок C++. И я пытаюсь решить проблему обратного слова: https://code.google.com/codejam/contest/351101/dashboard#s=p1
Я не мог понять, почему мой вывод дает это.
Пожалуйста, помогите мне.
, затем добавление получает (-ы); вне цикла for будет исправлять эту проблему .. спасибо – Eddie
@EunMin: Возможно, но, как говорит Сэм, вы не должны использовать старые, небезопасные функции C 'stdio' вообще, не говоря уже о смешивании их с C++' iostream'. Придерживайтесь 'getline' над' gets' и используйте '' строковый анализ 'stringstream' для каждой строки, а не' scanf'. – ShadowRanger