Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 字符串函数赢得';t返回字符串_C++_Return - Fatal编程技术网

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保存值。不清楚真正的意图是什么。