报错,该函数传递的变量应为const char*,与Cstring不匹配,如何解决?
时间: 2023-08-10 20:09:31 浏览: 124
关于CString 变量的错误
出现这种错误通常是因为函数参数类型与传递的实参类型不匹配,而C++中的字符串类型有多种,常见的有C-style的字符串类型char*和C++标准库提供的string类型。如果函数参数要求传递的是const char*类型,而你传递的是C++标准库的string类型或者其他类型,就会出现类型不匹配的错误。
解决方法有两种:
1. 将string类型转换为const char*类型。
可以使用string类的c_str()函数将string类型转换为const char*类型。例如:
```cpp
string str = "hello";
foo(str.c_str());
```
2. 修改函数参数类型,改为接受string类型。
如果你无法修改传递参数的类型,也可以将函数参数改为接受string类型。例如:
```cpp
void foo(string str) {
// do something
}
```
这样就可以直接传递string类型的变量了。
阅读全文