字符串逆序输出
题目266
字符串逆序输出
- 描述
- 给定一行字符,逆序输出此行(空格.数字不输出)
- 输入
- 第一行是一个整数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;
}