【发布时间】:2014-12-14 01:36:18
【问题描述】:
我尝试将字符串值传递给函数,但 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;
}
【问题讨论】:
标签: c++ string parameters char constants