título Descripción
Las palabras se invirtieron frase, puntuacion no está al revés. . Por ejemplo, yo como Beijing después de que la función se convierte en :. Beijing como yo
Introduzca una descripción:
Cada prueba comprende una entrada de prueba :. I como modo de realización Beijing la longitud de entrada que no exceda de 100
Descripción Salida:
Después de cadena de salida secuencialmente invertida, separados por espacios
Ejemplo 1
Entrada:. I como Beijing
Salida: Beijing como I.
Pensando 1 : substr por la primera cadena en una palabra en un vector, el vector y luego en palabras de salida orden inverso, para completar la cadena invertida
códigos:
#include <iostream>
#include <stdlib.h>
#include <string>
#include <vector>
using namespace std;
int main()
{
while (1)
{
string str;
getline(cin, str);
vector<string> v;
int pos = 0, start = 0;
while(pos<str.size())
{
pos = str.find(' ', start);
string ret = str.substr(start, pos - start);
v.push_back(ret);
start = pos + 1;
}
vector<string>::reverse_iterator it = v.rbegin();
while (it != v.rend())
{
cout << *it << " ";
it++;
}
cout << endl;
}
system("pause");
return 0;
}
2 Ideas : primera vuelta completa una cadena entera, y luego completar la reversión parcial, que es detener después de encontrar el espacio, flip completa.
código:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string s;
注意这里要使用getline,cin>>s遇到空格就接收结束了
getline(cin, s);
翻转整个句子
reverse(s.begin(), s.end()); // 翻转单词
auto start = s.begin();
while (start != s.end())
{
auto end = start;
while (end != s.end() && *end != ' ')
end++;
reverse(start, end);
if (end != s.end())
start = end + 1;
else
start = end;
}
cout << s << endl;
system("pause");
return 0;
}