C++ 字符串函数赢得';t返回字符串
在我的C++ 字符串函数赢得';t返回字符串,c++,return,C++,Return,在我的RemSpacePunct函数中,我似乎无法返回str 我想创建一个函数来删除字符串中的空格,但是当我运行代码时,它不会删除空格 string RemSpacePunct(string str); 字符串排序(stringstr); int main(){ string s=“部分男性”; 排序(s.begin(),s.end()); (s); cout您忽略了返回值。str在传递给函数时被复制,因此您对参数所做的任何修改都不会反映回原始值。相反,您应该返回一个修改后的值-您可以这样做,但
RemSpacePunct
函数中,我似乎无法返回str
我想创建一个函数来删除字符串中的空格,但是当我运行代码时,它不会删除空格
string RemSpacePunct(string str);
字符串排序(stringstr);
int main(){
string s=“部分男性”;
排序(s.begin(),s.end());
(s);
cout您忽略了返回值。str
在传递给函数时被复制,因此您对参数所做的任何修改都不会反映回原始值。相反,您应该返回一个修改后的值-您可以这样做,但您可以忽略它,而不是使用它:
string result = RemSpacePunct(s);
cout << result;
字符串结果=RemSpacePunct(s);
调用函数时是否忽略返回值:s=RemSpacePunct(s);
调用RemSpacePunct(s);
,无论在函数体中编写什么代码,都不应期望这会对函数中的s
的值产生任何影响。这是因为您已按值传递字符串-制作副本-并期望使用返回值接收更改,但您对该返回值不做任何操作。旁注:You在某一点上会越界,因为您从0迭代到str
的原始长度,并且没有考虑到str
的长度减少。或者使用pass by reference保存值。不清楚真正的意图是什么。