1009 说反话 (20 分)

博客围绕编写程序将英语句子中单词顺序颠倒输出展开。介绍了输入输出格式,思路是设立指针,找到空格时截取单词并输出后续单词,首个单词直接输出。总结指出利用指针反向输出更简单,能简化问题。

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

题目:

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:

测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。

输出格式:

每个测试用例的输出占一行,输出倒序后的句子。

输入样例:

Hello World Here I Come

输出样例:

Come I Here World Hello

  刚开始没想用指针,感觉还挺麻烦,后来参考了别人的写法,感觉还是指针利落。

思路:

  • 设立一个指针,当找到空格时,截取单词,而后输出空格后面的单词,当找到第一个单词时即p == s[0]直接输出原句首单词。

代码:

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int main()
 5 {
 6 
 7     int k;
 8     char s[81];
 9     char *p;
10     gets(s);
11     k = strlen(s);
12     p = s + k;
13     while (1)
14     {
15         if (p == s)    //输出原句的第一个单词 
16         {
17             printf("%s\n", p);
18             break;
19         }
20         if (*p == ' ')
21         {
22             *p = '\0';    //截取单词 
23             printf("%s ", p+1);
24         }
25         p--;
26     }
27 
28     return 0;
29 }

总结:

    利用指针反向输出会简单很多,有时利用指针,问题会被简化很多。

    我太菜了要多学学啊!!

转载于:https://www.cnblogs.com/Anber82/p/11175936.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值