【发布时间】:2021-12-27 23:29:27
【问题描述】:
我正在尝试编写一个反转字符串的函数。我已经弄清楚了大部分代码,当我将字符串打印到std::cout 时,它显示了我需要的内容。但是,当我测试代码时,结果是我从函数中得到了"。这是我的代码:
#include <iostream>
#include <string>
using namespace std;
string result;
string reverseString (string str)
{
for(int i = str.length(); i >= -1; i--) {
result+= str[i];
}
cout << result;
return result;
}
【问题讨论】:
-
这本身不是一个可运行的程序。请展示一个完整的示例。除非我们了解您如何使用它,否则我们无法告诉您代码有什么问题。
-
也就是说:你了解局部变量和全局变量的区别吗?
result是哪一种?为什么选择这种方式? -
@KarlKnechtel 虽然我还没有深入研究 C++ 的范围。我很清楚全局变量和局部变量的区别(至少在 C# 中)。我选择将结果设为全局变量,因为我尝试使用局部变量但它不起作用。另外,这实际上是关于代码战的问题,我可以在他们展示的测试中添加。
-
string reverseString (string const& str) { return string(str.rbegin(), str.rend()); } -
或者,您可以简单地取消这个手动功能,而使用标准的
std::reverse()算法,例如:string str = ...; std::reserve(str.begin(), str.end());
标签: c++ string reverse function-definition