题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。
为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.”,则输出“student. a am I”。
解法:此题比较简单
void revertChar(char *a)
{
int len = strlen(a);
int j = len;
for (int i = len -1; i >= 0; --i)
{
if (a[i] == ' ')
{
print(a, i + 1, j - 1);
j = i;
std::cout << " ";
}
if (i == 0)
{
print(a, i, j - 1);
}
}
std::cout << std::endl;
}
void print(char *a, int start, int end)
{
if (a == NULL)
return;
while(start <= end)
std::cout << a[start++];
}