【发布时间】:2020-08-04 13:14:28
【问题描述】:
我的任务说我应该编写一个名为 removeChar 的函数;
接受 4 个输入:一个整数 num、一个字符串 str、一个字符串 s 和一个字符 c,但不返回 任何东西。
查找 s 中出现的所有 c 的数量(大写和小写)(提示:您可以 使用ASCII码进行比较))并保存在num中
将修剪后的字符串复制到str中
在同一个文件中编写一个 main() 函数,其中包含一系列测试以展示正确的 removeChar() 的行为。
但是所有的打印操作都应该在 main() 函数中完成。我有这个代码:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string removeChar(int num, string s, string str, char c);
int main()
{
string s = "asdfasdf";
s = removeChar(1, "a", "hello", 'h');
cout << s;
}
string removeChar(int num, string s, string str, char c)
{
int i;
for (i = 0; i < s.length(); i++)
if (int(s.at(i)) == int(c))
num = int(c);
str.erase(std::remove(str.begin(), str.end(), (char)num), str.end());
return str;
}
它不起作用,即使它起作用,我也需要一个void函数。
【问题讨论】:
-
提示:输出参数必须是引用。
-
@Marque Phoenix 这个函数声明 string removeChar(int num, string s, string str, char c);没有任何意义。例如函数中没有使用参数num。
-
如果你需要一个不返回任何东西的函数,那么结果也需要是一个参数(引用)。
-
在
s中查找c的所有出现次数可能意味着“c在s中出现了多少次”,而不是“字符@的数值是多少987654326@" -
在要求 3 上,“修剪后的字符串”是什么?
标签: c++ string algorithm function char