主题:字符串问题
qianying01
[专家分:0] 发布于 2010-10-30 22:27:00
小妹初学C语言,请各位大侠赐教。
如何实现字符串单词反序输出?
例如输入字符串"I love you",输出"you love I"
回复列表 (共1个回复)
沙发
kirs [专家分:190] 发布于 2010-10-31 02:01:00
试试看
#include <stdio.h>
#include <string.h>
main()
{
int i,m,m2,m3,k;
char ch[50];
gets(ch);
k=strlen(ch)-1;//strlen(字符名)为求字符长度函数,返回长度
m2=k;//有a[m2]为最后一个元素
if(k==0){printf("%c",ch[k]);exit(0);}//只有一个有效字符时
if(k==-1){printf("error");exit(0);}//无字符输入时
for(i=k;i>=0;i--)
{
if(ch[i]==' '||i==0)
{
if(i==0)
{
while(ch[i]!=' ')
{
printf("%c",ch[i]);
++i;
}
break;
}
m=i+1;//因为ch[i]为空格,则a[m]为单词头部
m3=m-1;//先用m3标记空格位置
while(m<=m2)//将单词输出
{
printf("%c",ch[m]);
m++;
}
while(ch[m3]==' ')//将单词前空格输出
{
printf("%c",ch[m3]);
--m3;//
}
i=m3+1;//因为进入for时i自动减1,故先加1
m2=m3;//此时为某单词尾部
}
}
}
我来回复