题目及要求如下:
代码如下:
#include<stdio.h>
#include<string.h>
int main(){
char str1[100];
char str2[100][100];
gets(str1);//键盘输入字符串str1
int i,j=0,k=0,count=0;
for(i=0;i<strlen(str1);i++){
if(str1[i]=='\n'){//遇到\n,字符串结束,跳出循环
break;
}
if(str1[i]!=' '){//没有遇到空格,则把 str1[i]赋给str2[j][k++]
str2[j][k++]=str1[i];
}
else{//遇到空格,则先把空格存在str2中,即str2[j][k]中
//str2[j]要变为str2[j+1],k重新置为0,存下一个单词
//count用来计数有多少个单词,遇到一个空格即代表一个单词
str2[j][k]='\0';
j++;
k=0;
count++;
}
}
for(i=count;i>0;i--){
printf("%s ",str2[i]);
}
printf("%s",str2[0]);//最后一个单词后面没有空格
return 0;
}
1.思想大概就是从键盘输入字符串str1,然后遍历str1。把每个单词存到另一个二维数组str2中,遇到一个空格则是一个单词。
2.最后利用for循环输出二维数组中的内容,注意最后一个单词后面没有空格。