PTA字符串逆序

输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。

输入格式:

输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。

输出格式:

在一行中输出逆序后的字符串。

输入样例:

Hello World!

输出样例:

!dlroW olleH

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

学到指针了,但是这边数组的简单题还没处理完,就串个台用用指针。

#include<stdio.h>
#include<string.h>
int main() {
    char str[100];
    gets(str);
    int i, n;
    n = strlen(str);
    char* p = str + n - 1;
    for (i = 0; i < n; i++) {
        printf("%c", *p);
        p--;
    }
    return 0;
}

可能来看这个题目,更多的是刚学到数组的同学,那么这边解释一下思路!

首先用gets读取一下字符串

然后测一下字符串长度

接下来就取数组首地址再加上字符串长度,得出最后一个数组的地址

然后用星号解引用,一个个字符倒着输出就好了。

### PTA平台中的字符串输入输出方法 在PTA平台上进行编程练习时,对于C/C++语言而言,字符串的输入和输出可以通过多种方式实现。针对带有空格的字符串输入,`getline()` 函数是一个不错的选择,它能够读取整行输入直到遇到换行符为止[^2]。 #### 使用 `getline()` 进行字符串输入 为了确保可以正确获取包含空白字符在内的整个字符串,在C++中推荐使用标准库提供的 `std::getline()` 函数来进行输入操作。此函数可以从流对象(如 `cin` 或者文件流)中读入一整行文字并存储至指定变量内: ```cpp #include <iostream> #include <string> int main(){ std::string input; std::cout << "请输入一段话:"; std::getline(std::cin, input); } ``` 这段代码展示了如何利用 `std::getline()` 来接收用户键入的一句话,并将其保存于名为 `input` 的字符串变量之中。 #### 处理多组测试案例下的字符串输入 如果题目要求处理多个独立的数据集,则可以在循环结构内部调用上述输入逻辑来依次解析每一组数据。考虑到某些情况下可能需要忽略掉前导空白或其他分隔符,还可以借助额外的功能辅助完成更复杂的任务需求。 #### 字符串逆序输出示例 下面给出了一段完整的程序用于展示怎样接受一个字符串并将之反转后打印出来。这里采用了之前提到过的 `std::getline()` 方法收集用户的原始输入,随后通过遍历索引来构建新的反向排列版本: ```cpp #include <iostream> #include <string> using namespace std; int main(){ string s; cout << "请输入要翻转的文字序列:"; getline(cin, s); int length = s.size(); // 构建并显示倒置后的字符串 for (int index=length-1 ;index>=0; --index){ cout<<s[index]; } } ``` 该例子不仅体现了基本的字符串输入技巧,同时也提供了一个简单的算法思路——即从最后一个字符向前逐位访问直至第一个位置结束,从而达到逆转效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Louis Maos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值