法一:
#include<stdio.h>
#include<string.h>
void main()
{
int i,k=0,j=0;
char ss[100],s[10][20];
gets(ss);
for(i=0;ss[i];i++)
if(ss[i]!=' ')
s[k][j++]=ss[i];
else
{
s[k][j]='/0';
k++;
j=0;
}
s[k][j]='/0';
//输出
for(j=k;j>=0;j--)
printf("%s ",s[j]);
}
法二: //思路:利用二维数组把各个单词储存起来,再依次输出。
#include<stdio.h>
#include<string.h>
void main()
{
char str[30];
char a[30][30];
int b[30];
int i,j=0,k=0,m,n,len;
printf("请输入一个字符串:");
gets(str);
len=strlen(str);
for(i=0;i<len;i++) //主要实现步骤 此for语句用来储存各个单词。主要利用空格和‘。’来判断各个单词有多长。
{
if(str[i]!=' ') {a[j++][k]=str[i]; } // printf("%c",a[j][k]);
if((str[i]==' ')||(str[i]=='.')||(str[i]=='!')) {b[k]=j-1;j=0;k++;} //printf("b[%d]=%d ",k,b[k]);
}
for(m=k;m>=0;m--) //此for语句用来输出结果
{
for(n=0;n<=b[m];n++)
{printf("%c",a[n][m]);}
if(m!=k) printf(" ");
}
}