/* 倒转英文句子:思路:首先先把整个字符串倒转,然后再根据空格,把一个个单词进行倒转,OK,以下是代码 */
#include "stdio.h"
#include "string.h"
#define N 50
void main()
{
char a[N];
int i,start=0;
int end=0,k;
char t;
printf("请输入一串字符");
gets(a);
k=strlen(a);
end=k-1;
while(start<=end) //颠倒整个字符串
{
t=a[start];
a[start]=a[end];
a[end]=t;
start++;
end--;
}
start=0;
for(i=0;i<k;i++) //颠倒一个单词
{
if(a[i]==32||a[i+1]==0) //如果是空格 或是结尾
{
if(i==k-1) //判断是否最后一个
end=i;
else
end=i-1;
while(start<=end) //调换空格与空格之间
{
t=a[start];
a[start]=a[end];
a[end]=t;
start++;
end--;
}
start=i+1; //起始位置
}
}
printf("\n-----------输出:------------------");
for(i=0;i<k;i++)
{
printf("%c",a[i]);
}
}
//转载请注明来自小高博客 http://blog.csdn.net/qgy1994