回 帖 发 新 帖 刷新版面

主题:字符串问题

小妹初学C语言,请各位大侠赐教。
如何实现字符串单词反序输出?
例如输入字符串"I love you",输出"you love I"

回复列表 (共1个回复)

沙发

试试看
#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;//此时为某单词尾部
              
          }
    }

}

我来回复

您尚未登录,请登录后再回复。点此登录或注册