刷题之说反话

题目描述:
给定一句英语,要求编写程序,将居中所有单词按颠倒顺序输出。
输入样例:
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为结尾。

猜你喜欢

转载自blog.csdn.net/weixin_44809329/article/details/106414482