7-11 单词翻转

题目如下:PTA | 程序设计类实验辅助教学平台

问题描述

输入一个句子(一行),将句子中的每一个单词翻转后输出。

输入描述

只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。

输出描述

翻转每一个单词后的字符串,单词之间的空格需与原文一致。

样例输入

hello world

样例输出

olleh dlrow

样例输入

li   hai   la      wo   de      guo

样例输出

il   iah   al      ow   ed      oug

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

代码如下:(看了博哥)

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s1;
    getline(cin,s1);
    for(int i=0;i<s1.size();i++){
        if(s1[i]==' ') printf(" ");
        else{
            int j=i;
            while(s1[j]!=' '&&s1[j]!='\0') j++;
            int z=j-1;
            for(int k=z;z>=i;z--) printf("%c",s1[z]);
            i=j-1;
        }
    }
    return 0;
}












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 题目描述: 输入一个符串,将其中的每个单词翻转后输出。 输入格式: 一个符串,长度不超过100。 输出格式: 翻转后的符串。 样例输入: hello world 样例输出: olleh dlrow 解题思路: 先将整个符串翻转,然后再将每个单词翻转。 代码实现: ### 回答2: 博客园链接:https://www.cnblogs.com/Tomorrow-I-Love-You/p/14562869.html 题目描述 在本题中,将给出一个长度不超过 $100$ 个符的符串。 请你将这个符串中的单词翻转过来,标点可以不处理,但是要保证单词内部正确的顺序。 请注意,在一些编程语言中(如 C++),存在着一些规定中的数组边界处理错误,如果您的程序产生了这样的错误,您只需要考虑修正这个规定中的错误而不需要花费更多的时间在调试上面。 输入格式 输入数据在第一行有一个正整数 $n$。 接下来有 $n$ 行,每行表示一个符串。 输出格式 输出每组数据的结果,每个符串占一行。 样例输入 3 hello world. how are you? i'm fine, thank you. 样例输出 olleh dlrow. woh era ?uoy i'm enif, uoyknaht. 算法 符串 参考文献 无 讲解 第一次写独立完成的题解,如有错误,敬请指正。这一题思想非常简单,就是考虑如何将符串中单词顺序颠倒,具体请看ac代码。$\color{#EEC900}code$ ### 回答3: SWUST OJ1162: 单词翻转,是一道经典的符串处理题目。本题需要程序员编写程序,输入一行英文句子,并将每个单词翻转输出,但是所有非符(包括空格、逗号、句号等)必须保持原来的位置不变。 解题思路主要分为以下几个步骤: 1. 输入符串 首先,我们需要输入一行英文句子,可以使用符串的输入输出函数,如scanf或gets函数。在输入的同时,要考虑单词中间的空格和标点符号。 2. 遍历符串 我们需要使用循环语句,遍历整个符串,找到每个单词的首尾位置,以供后续反转。 3. 反转单词 使用指针或符串操作函数(如strrev函数),将每个单词反转。注意,在反转符串的同时,还需要保留所有非符。 4. 输出结果 最后,我们需要输出经过反转后的整个句子。 在代码实现过程中,需要注意以下几个细节: 1. 所有非符必须保持原来的位置不变。可以使用判断函数(如isalpha函数),判断符是否为母。 2. 单词的首尾位置可以使用指针或者符串操作函数(如strtok函数)实现。 3. 符串反转时,需要考虑边界情况,如符串为空或者只有一个符。 综上所述,本题是一道符串处理的基础性题目,可以帮助程序员提高对符串操作的熟练度和实践能力,对于进一步深入学习算法和数据结构也具有一定的启发作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值