**题目:输入一个英文句子,翻转句子中单词的顺序,但是单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。
代码示例:**
#include<iostream>
#include<string>
using namespace std;
bool InverseStence(string &str)//翻转句子
{
if (str == "")
return false;
int i = 0;
int j = str.length() - 1;
while (i < j)
{
char ch = str[i];
str[i] = str[j];
str[j] = ch;
i++;
j--;
}
return true;
}
bool Inverse(string &str)//翻转句子,翻转句子中的单词
{
if (str == "")
return false;
if (str == " ")
return true;
InverseStence(str);
int i = 0;
int k = 0;
int j = 0;
while (str[k] != '\0')
{
while (str[k] != ' ')
{
k++;
if (str[k] == '\0')
break;
}
j = k - 1;
while (i < j)
{
char ch = str[i];
str[i] = str[j];
str[j] = ch;
i++;
j--;
}
while (str[k] == ' ')
k++;
i = k;
}
}
int main()
{
string str = "I am a student";
bool flag = Inverse(str);
cout << str << endl;
}