gpt4 book ai didi

c++ - 将字符串传递给函数时出现 "conversion to const char*"错误

转载 作者:行者123 更新时间:2023-11-27 23:01:12 26 4
gpt4 key购买 nike

我试图将字符串值传递给函数,但 DevC++5.6.1 报错(从 char 到 const char* 的转换无效)。这是程序:

#include<iostream>
#include<string>
using namespace std;

string mysubstr(string target, int start_pos, string end_char) {
for(int i = 0; i < target.size(); ++i)
if(target[i] == ".")
return target.substr(0, i);
return target;
}

int main() {
string temp;
cin >> temp;
string day0 = mysubstr(temp, 0, '.');
return 0;
}

我想知道为什么会发生这种情况以及如何解决它。谢谢。顺便说一句:如果将函数头(第 5 行)更改为

,也会出现相同的错误
string mysubstr(const string &target, int start_pos, string end_char) {

编辑:函数应如下所示。对原来的两个修改:(1)调用者应该使用双引号; (2) 相比之下我应该使用 target.substr(i, 0)。 (3) 现在使用start_pos和end_char这两个参数。

string mysubstr(string target, int start_pos, string end_char) {
for(int i = 0; i < target.size(); ++i)
if(target.substr(i, 1) == end_char)
return target.substr(0, i);
return target;
}

最佳答案

您正在比较字符与字符串 (target[i] == ".) 并将字符传递给字符串参数 ('.' for 结束字符)。请注意,您实际上并未在函数中使用 end_char,也未就此使用start_pos

关于c++ - 将字符串传递给函数时出现 "conversion to const char*"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27465506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com