字符串逆序输出

时间:2021-05-02 22:29:20
题目266

字符串逆序输出

时间限制:3000 ms  |  内存限制:65535 KB
难度:0
 
描述
给定一行字符,逆序输出此行(空格.数字不输出)
 
输入
第一行是一个整数N(N<10)表示测试数据的组数)
每组测试数据占一行,每行数据中间有且只有一个空格(这样你可以把此行当成两个字符串读取)。
每行字符长度不超过40
并且保证输入的字符只有空格(1个),数字,小写字母三种
输出
对应每行测试数据,逆序输出(空格和数字不输出)
样例输入
3
abc 123de
abc 123
abc d
样例输出
edcba
cba
dcba

#include<string.h>
int main()
{
    int test,i,j;
    char a[1000],b[1000];
    scanf("%d",&test);
    while(test--)
    {
    char m,n,t;
    scanf("%s%s",&a,&b);        //空格会认为输出结束,此处若%s %s则不通过。 
    i=strlen(a);
    j=strlen(b);
    for(t=j-1;t>=0;t--)
       {
              if((b[t]>='a')&&(b[t]<='z'))
              printf("%c",b[t]);
       }
       for(t=i-1;t>=0;t--)
        if((a[t]>='a')&&(a[t]<='z'))
       printf("%c",a[t]);
       printf("\n");
    }
    return 0;
}

使用gets();函数可将空格忽略,以简化程序步骤。

#include<stdio.h>
#include<string.h>
      int main() 
 { 
    int N, i, j, k; 
    char a[45]; 
 
   scanf("%d",&N); 
  getchar();        //记得清除\n  
    while(N--) 
   {        
          gets(a); 
           j = strlen(a); 
           for(k=j-1; k>=0; k--) 
           { 
              if((a[k]>='a') && (a[k]<='z')) 
             printf("%c",a[k]); 
           } 
           printf("\n"); 
    } 
    return 0; 
}