问题描述
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入描述
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
输出描述
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例输入
hello world
样例输出
olleh dlrow
样例输入
li hai la wo de guo
样例输出
il iah al ow ed oug
第一个节点判断的是样例一,第二个节点判断的是样例二,第三个节点判断的是前面有若干个空格的情况
代码如下
#include <stdio.h>
#include<string.h>
int main()
{
char ch[1000] = { 0 };
gets(ch);
int len = 0,i = 0,kc = 0,flag=0,kong = -1;
len = strlen(ch);
while (ch[i] == ' ')
{
kong++;
i++;
}
for (i = 0;; i++)
{
if ((i < len) && (i > kc) && ((ch[i + 1] == ' ') || (ch[i + 1] == 0)))
{
int j = i;
if (flag == 0)
{
if (ch[0]==' ') for (j = i; j > kong; j--) printf("%c", ch[j]);
else for (j = i; j >= 0; j--) printf("%c", ch[j]);
}
else
{
for (j = i; j > kc; j--) printf("%c", ch[j]);
}
j = i;
do
{
j++;
kc = j;
} while (ch[j + 1] == ' ');
flag++;
}
if (ch[i] == ' ')
printf("%c",ch[i]);
if (i > len)
break;
}
}