单词逆序输出的简便方法

来源:互联网 发布:淘宝网防晒衣 编辑:程序博客网 时间:2024/04/26 22:08

今天做了一道单词逆序输出,句子顺序不变的题,输入1olleh !dlrow 2m'I morf .udh3 I ekil .mca
输出1hello world! 2I'm from hdu.3 I like acm.
想到了一个新思路,不同于以前的创建新数组保存翻转过来的单词,而是检测到空格后,直接以字符的形式挨个输出前一个单词,再单独考虑最后一个单词的输出,这样比之简单许多
上代码:

#include<stdio.h> #include<string.h>  int main()  {      int len,i,j,k,m,l,t;      char str[1005];      scanf("%d",&t);      getchar();      while(t--)      {              fgets(str,1005,stdin);              l=strlen(str);              str[l-1]='\0';            m=0,k=0;              for(i=0;i<l;i++)              {                  if(str[i]==' ')                  {                      m=i;                       for(j=m-1;j>=k;j--)                      {                          printf("%c",str[j]);                      }                          printf("%c",str[i]);                      k=m+1;                  }              }              for(j=l-2;j>=k;j--)            {                  printf("%c",str[j]);              }              printf("\n");          }      return 0;  }  

这里有一个坑点,因为最后一个单词录入的时候最后一个为 ’ \0 ‘,但我们这样输出把 ‘ \0 ’ 放到了前面,虽然我们是按字符输出 \0 不显示看起来结果是对的,但是这样是无法通过检测的

原创粉丝点击