字符串逆序输出

时间:2022-01-14 22:32:50

字符串逆序输出

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 0
描述

给定一行字符,逆序输出此行(空格.数字不输出)

 

输入
第一行是一个整数N(N<10)表示测试数据的组数)
每组测试数据占一行,每行数据中间有且只有一个空格(这样你可以把此行当成两个字符串读取)。
每行字符长度不超过40
并且保证输入的字符只有空格(1个),数字,小写字母三种
输出
对应每行测试数据,逆序输出(空格和数字不输出)
样例输入
3
abc 123de
abc 123
abc d
样例输出
edcba
cba
dcba  
#include <stdio.h>
#include <string.h>
int main()
{
 int n,i,k;
 char str[40],ch;
 scanf("%d",&n);
 ch=getchar();
 while(n--)
 {
	
	fgets(str,sizeof(str),stdin);
	k=strlen(str);
	for(i=k-1;i>=0;i--)
	{
		if(str[i]>='a'&&str[i]<='z')
			printf("%c",str[i]);
	}
	printf("\n");
 }
 return 0;
}

第二种

#include<stdio.h>
#include<string.h>
int main()
{
	char a[42],b[42],i,t,l;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%s%s",a,b);
	
		l=strlen(b);
		for(i=l-1;i>=0;i--)
			if(b[i]>='a'&&b[i]<='z')
			       printf("%c",b[i]);

		l=strlen(a);
		for(i=l-1;i>=0;i--)
			if(a[i]>='a'&&a[i]<='z')
			       printf("%c",a[i]);
		printf("\n");

		

	}
	return 0;
}


第三种

 

 
#include <stdio.h>
void revers()
{
    char c;
    if((c = getchar()) != '\n')
        revers();
    if(c != '\n'&&c>='a'&&c<='z')
        putchar(c);
}

int main()
{
	int a;
	scanf("%d\n",&a);
	while(a--)
	{
		revers();
		printf("\n");
	}
	return 0;
}