题目描述:
给定一句英语,要求编写程序,将居中所有单词按颠倒顺序输出。
输入样例:
I LOVE YOU
输出样例:
YOU LOVE I
- 思路:
输入字符串,建立一个二维数组,将第一个单词存放于第一行,第二个单词存放在第二行,依次存放,最后从后往前输出即可,如下图
#include<cstdio>
#include<cstring>
int main(){
char str[80];
gets_s(str);
int len = strlen(str);
int r = 0,c = 0; //行r 列c
char arr[80][80];
for(int i = 0;i < len;i++){
if(str[i] != ' '){
arr[r][c] = str[i];
c++;
}
else{
arr[r][c] = '\0';
r++;
c=0;
}
}
for(int i = r;i >= 0;i--){
printf("%s",arr[i]);
if(i > 0){
printf(" ");
}
}
return 0;
}
- 值得总结也是需要注意的几点:
1.输入字符串时,不能用scanf_s(“%s”,str)
函数,而是用gets_s(str)
,因为scanf_s(“%s”,str)
,通过空格或换行
来识别一个字符串的输入结束;gets_s(str)
通过换行
来识别一个字符串的输入结束。
2.遇到以单词为单元的题,要想到用二维数组来解决。
3.注意字符串以\0
为结尾。