c++ - 在函数中将字符串转换为 char* 的问题
问题描述
在我的代码中,我的 inout 是string
,但我的一个函数适用于char*
,所以我将其转换如下:
string Regex;
std::cin>>Regex;
const char* char_regex = Regex.c_str();
我的功能:
Regex(automates_list,Regex.size(),char_regex,std::cout);
定义如下:
void Regex(List& list,int const& word_length,const char* word,ostream& out)
错误是:
错误:不匹配调用 '(std::__cxx11::string {aka std::__cxx11::basic_string<char>}) (List&, int&, const char*&, std::ostream&)'|
解决方案
您的代码结构如下所示:
void Regex(...);
int main() {
std::string Regex = ...;
// ...
Regex(automates_list,Regex.size(),char_regex,std::cout);
}
你得到一个错误,因为字符串Regex
遮蔽了 function Regex
。您可以通过重命名字符串或重命名函数来解决此问题:
重命名函数:这里我将函数重命名为applyRegex
.
void applyRegex(...);
int main() {
std::string Regex = ...;
// ...
applyRegex(automates_list,Regex.size(),char_regex,std::cout);
}
重命名字符串:这里我将字符串重命名为userRegex
.
void Regex(...);
int main() {
std::string userRegex = ...;
// ...
Regex(automates_list,userRegex.size(),char_regex,std::cout);
}
推荐阅读
- javascript - 如何保持文字的比例?
- angular - agm-marker-cluster 中的图像路径格式是什么,如何为不同类型分配不同的标记簇图标?
- exchangewebservices - Route exchange online public folder hierarchy requests failed with "Expected an item Id but received a folder Id"
- r - R如果一列中的值再次出现在另一列中而没有循环,则删除行
- bash - 如何使用 bash 将 if then 语句添加到具有多个参数的值
- spring - How to build a nonblocking Consumer when using AsyncRabbitTemplate with Request/Reply Pattern
- csv - 将 csv 保存为 txt 仅一列数据
- python - Python - 如何通过插值评估通用维度数组的内部收益率 (IRR)
- c# - 找不到 C# 路径
- windows-installer - InstallShield - 防止注册表值在升级期间被补丁覆盖?