c++ - 字符串函数不会返回字符串
问题描述
return str
我似乎无法RemSpacePunct
发挥作用。
我想创建一个删除字符串中空格的函数,但是当我运行代码时,它不会删除空格。
string RemSpacePunct(string str);
string sort(string str);
int main(){
string s = "partial men";
sort(s.begin(), s.end());
RemSpacePunct(s);
cout << s;
}
string RemSpacePunct(string str)
{
//add code here
int s, i;
s = str.length();
for(i = 0; i < s; i++){
if(isalnum(str[i]) == false){
str.erase(i, 1);
}
}
return str;
}
解决方案
您忽略了返回值。str
在传递给函数时会被复制,因此您对参数执行的任何修改都不会反映回原始值。相反,您应该返回一个修改后的值 - 您会这样做,但您随后会忽略它而不是使用它:
string result = RemSpacePunct(s);
cout << result;
推荐阅读
- visual-studio-code - 当我在 JSX 代码中输入 {} 时向左移动 - VSCode
- c++ - [VsCode]:有什么方法可以显示微软 VsCode 中 C/C++ 函数的调用层次结构/调用树?
- r - 如果任何列包含 NA,则删除行
- python - 如何使用 Beautiful Soup 检索标签之后的文本?
- node.js - 检查环回 v3 中是否存在 MongoDB 集合。如果不使用自定义属性创建
- javascript - React Native 找不到已声明的变量函数
- javascript - 从循环渲染本机反应
- c# - Newtonsoft.Json:当有附加属性时如何将 json 转换为 xml?
- java - java中可以为null的返回值是否可以放入kotlin中声明为非null的变量中
- python - Python 错误,与未散列的可变 Series 对象有关