给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。
输出格式:
每个测试用例的输出占一行,输出倒序后的句子。
输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
/*
* 1. 输入含空格的字符串:用 gets() 读取
* 2. 句子颠倒,单词本身字母不颠倒:
* 2.1 从末尾单词开始输出
* 2.2 利用指针使单词本身正序
* 2.3 空格是单词结束的标识
*/
#include <stdio.h>
#include <string.h>
int main() {
char str[81]; //创建字符串
gets(str); //读取字符串
int i = 0; //数组下标
for (i = strlen(str); i > 0; i--) { //从末尾开始遍历字符串
if (str[i] == ' ') { //如果遇到空格
printf("%s ", &str[i+1]); //输出空格后的单词
str[i] = '\0'; //把空格改为 \0,使后续输出也只有一个单词
}
}
printf("%s", &str[i]); //输出原字符串的第一个单词
return 0;
}
char str[81]="abcdefg";
printf("%s", &str); //输出abcdefg
printf("%s", &str[0]); //输出abcdefg
printf("%s", &str[1]); //输出bcdefg
printf("%c", &str[1]); //输出b