C++里string类的reverse的返回值类型
时间: 2024-04-10 11:27:01 浏览: 108
在C++中,`std::string`类的`reverse`函数没有返回值。它是一个成员函数,用于反转字符串本身,而不是返回一个新的字符串。`reverse`函数会修改调用它的字符串对象。
以下是一个示例代码,展示如何使用`reverse`函数反转一个字符串:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "Hello World";
std::cout << "原始字符串: " << str << std::endl;
str.reverse(); // 反转字符串
std::cout << "反转后的字符串: " << str << std::endl;
return 0;
}
```
在这个例子中,我们使用`reverse`函数反转了字符串`str`。注意,`reverse`函数没有返回值,它直接修改了`str`对象,使其成为反转后的字符串。
希望这个回答对你有所帮助!如果你还有其他问题,请随时提问。
相关问题
c++ 字符串倒序函数声明:void Reverse(string & Str);
这是一个函数声明,函数名为 Reverse,参数为一个引用类型的 string 对象 Str,函数返回值为 void,表示不返回任何值。
函数实现的功能是将字符串 Str 中的字符顺序倒序排列。可以使用 std::reverse 函数来实现:
```cpp
#include <algorithm>
#include <string>
void Reverse(std::string& Str) {
std::reverse(Str.begin(), Str.end());
}
```
这个函数使用了 STL 的 std::reverse 函数,将字符串的起始和终止迭代器传递给它。由于 Str 是一个引用类型,因此在函数内部修改它的值也会对调用者产生影响。
#include<iostream> #include<vector> #include<string> #include<algorithm> using namespace std; class f { private: string m; public: f (string m):m(m){} string getM() {return m;} int ifornot () { string n; n=reverse(m.begin(),m.end()); if(m==n) return 1; else return 0; } }; int main() { int i,x; vector<f>m; f p; string n; vector<string>b; while(cin>>n) { p=f(n); m.push_back(p); } x=m.size(); for(i=0;i<x;i++) { if(f(m[i].ifornot)==1) b.push_back(m[i].getM); } sort(b.begin,b.end); x=b.size(); for(i=0;i<x;i++) cout<<b[i]; return 0; } 有什么错误
这段代码有一些错误:
1. `reverse()` 函数返回值为 `void`,所以在 `ifornot()` 函数中不能将其赋值给 `n`,应该直接调用 `reverse()` 函数,例如 `reverse(m.begin(),m.end())`。
2. 在 `ifornot()` 函数中,应该比较 `n` 和 `m` 的值,而不是 `m` 和 `n` 的值,因为 `n` 已经被倒置了。
3. 在调用 `getM()` 和 `ifornot()` 函数时,应该加上括号,例如 `m[i].ifornot()` 和 `m[i].getM()`。
4. 在调用 `sort()` 函数时,应该加上括号,例如 `sort(b.begin(), b.end())`。
下面是修改后的代码:
```c++
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
class f {
private:
string m;
public:
f(string m):m(m){}
string getM() {
return m;
}
int ifornot() {
string n = m;
reverse(n.begin(), n.end());
if(m == n)
return 1;
else
return 0;
}
};
int main() {
int i, x;
vector<f> m;
f p;
string n;
vector<string> b;
while(cin >> n) {
p = f(n);
m.push_back(p);
}
x = m.size();
for(i = 0; i < x; i++) {
if(m[i].ifornot() == 1)
b.push_back(m[i].getM());
}
sort(b.begin(), b.end());
x = b.size();
for(i = 0; i < x; i++)
cout << b[i] << " ";
return 0;
}
```
希望对你有帮助!
阅读全文