题目描述
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I” 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
接口说明
/** * 反转句子
@param sentence 原句子
*@return 反转后的句子
*/
public String reverse(String sentence);
输入描述:
将一个英文语句以单词为单位逆序排放。
输出描述:
得到逆序的句子
示例1
输入
I am a boy
输出
boy a am I
分析
1.注意scanf不能用于输入空格,但是这样可以,while (scanf("%c", &str[i]) !=EOF),点我查看示例
2.注意这个搭配,while (gets(a)!=NULL);区别 while(scanf("%c",)!=EOF)
3.strlen只能求字符串的有效长度。
#include<stdio.h>
#include<string.h>
int main(void)
{
char a[10000];
int len, b;
//scanf 不能直接输入空格
while (gets(a)!=NULL)
{
len = strlen(a);
for (int i = len - 1;i >= 0;i--)
{
b = i + 1;
if (a[i] == ' ')
{
while (a[b] != ' ')
{
if (b == len)
break;
printf("%c", a[b]);
b++;
}
printf(" ");
}
}
//句首不为空格时
int i=0;
while(a[i]!=' ')
{
printf("%c",a[i]);
i++;
}
}
}