复制
收藏
提问
简洁
输入一个字符串,长度在100以内,按相反次序输出其中的所有字符。 【样例输入】 tsinghua 【样例输出】 auhgnist C++
3月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
要在C++中实现字符串的反转,有多种方法可供选择。以下是一些基于提供的参考资料的实现方式:
使用 <algorithm>
库中的 reverse()
函数
这是最简单的方法之一,适用于 std::string
类型。reverse()
函数接受两个迭代器作为参数,分别指向要反转的序列的开始和结束。
#include <algorithm>
#include <iostream>
#include <string>
int main() {
std::string s;
std::getline(std::cin, s); // 读取一行输入
std::reverse(s.begin(), s.end()); // 反转字符串
std::cout << s; // 输出反转后的字符串
return 0;
}
自定义反转函数
如果你想要更深入地了解字符串反转的过程,可以编写自己的反转函数。这可以通过交换字符串两端的字符来实现,直到达到字符串的中心。
#include <iostream>
#include <string>
void reverseString(std::string& s) {
int n = s.length();
for (int i = 0; i < n / 2; ++i) {
std::swap(s[i], s[n - i - 1]);
}
}
int main() {
std::string s;
std::getline(std::cin, s);
reverseString(s);
std::cout << s;
return 0;
}
注意事项
- 根据5,
strrev
函数只对字符数组有效,对std::string
类型是无效的。因此,如果你使用的是std::string
,应该使用std::reverse()
或自定义函数来实现反转。 - 根据2,
strrev
函数和reverse
函数的使用场景是不同的。strrev
用于字符数组,而reverse
用于容器,如std::string
或std::vector
。
综上所述,对于长度在100以内的字符串,你可以选择上述任何一种方法来实现按相反次序输出字符串中的所有字符。对于样例输入 "tsinghua",使用上述任一方法都将得到样例输出 "auhgnist"。
你觉得结果怎么样?