信件往来

本文介绍了一个编程挑战,旨在帮助用户理解并解决一个特殊的字符串倒序输出问题,源自泰泰学长的有趣习惯——倒着写字。通过解析示例代码,读者将学会如何处理多行文本输入,并将其每个单词逆序输出,同时保留原有的空格和行格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XUPT_ACM的泰泰学长智商180,他有个怪癖——写字的时候喜欢倒着写。泰泰学长的女朋友收到泰泰学长的信可发了愁,你能帮泰泰学长的女朋友翻译吗? 

Input

输入包含多组数据。 第一行输入一个正整数 T 表示总的行数。接下来是T行。 
每行包含一些单词,每行最多1000个字符。 

Output

对于每一行输入,请你都把他倒过来,泰泰学长的女朋友会谢谢你的哟。 

Sample Input

3
olleh !dlrow
m'I morf .udh
I ekil .mca

Sample Output

hello world!
I'm from hdu.
I like acm.


  QAQ思路正确,可是输出格式不正确。

上次的不支持多空格的输入。。。

#include<stdio.h>
#include<string.h>
int main()
{
	int n;
	char str[1001];
	int len,i,j,flag,h,q;
	scanf("%d",&n);
	getchar();
	while(n--)
	{
		gets(str);
		len=strlen(str);
		str[len]='8';//防满足i+1; 
		flag=0;
	    h=q=0;
		for(i=0;i<len;i++)
		{
			if(str[i+1]==' ')
			{
				flag=1;        //说明字符串中含有空格 
				h=i;
				//倒叙输出
				for(j=h;j>=q;j--){ 
				printf("%c",str[j]);
				} 
				printf(" ");
				q=h+2;
			}
		}
		if(flag==0){               //字符串中没有空格 
			for(i=0;i<len;i++)
			printf("%c",str[i]);
			printf(" \n");
		}
		else{                     //含有空格 
			for(j=(len-1);j>=q;j--)
			printf("%c",str[j]);
			printf(" \n");
		}
	}
	
	
return 0;	
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值