英文句子中单词的倒序打印
举个例子:
Enter a sentence:you can swallow a cage can't you?
Reversal a sentence:you can't cage a swallow can't you?
include<stdio.h>
int main()
{
char c;
int len=1;//记录数组的长度
char a[1001]={};
printf("Enter a sentence:");
while(c=getchar())
{
a[len++]=c;//在未知个数的情况下这种写法比较简单
if(c=='!'||c=='?'||c=='.') break;
}
printf("Reversal a sentence:");
int x=len-2,y=len-2,z;//x,y是标记一个单词的始末位置,x通常指在空格上,z用作正向打印单词
for(x;x>0;)
{
x--;
if(a[x]==' '||x==0)
{
if(y==len-2) z=x+1;//第一个空格不能打印
else z=x;
for(z;z<=y;z++)
{
printf("%c",a[z]);
}
//下面这种选择打印空格的写法也行
/*z=x+1;//当x=0第一个数组元素不能有字母,选择浪费a[0]
for(z;z<=y;z++)
{
printf("%c",a[z]);
}
if(x!=0) printf(" ");
*/
x=y=x-1;//将x,y标记下一个单词
}
}
printf("%c",a[len-1]);//打印标点
}
计算未知数组的长度,控制两个变量读取两个序号的内容,有两种方法可供参考,这是这道题的关键,同时碰到空格或者倒着读到第一个数组元素就要打印字母。

浙公网安备 33010602011771号