[Error] cannot convert 'buy' to 'const char*' for argument '2' to 'int strcmp(const char*, const char*)'
时间: 2023-12-24 12:05:01 浏览: 160
这个错误是因为你在调用strcmp函数时,第二个参数需要传入一个const char*类型的字符串,但是你传入的是一个变量名buy,这个变量的类型可能不是const char*。你需要将buy转换为const char*类型,可以使用以下两种方法:
1. 使用字符串字面值来代替buy变量,例如:strcmp("buy", "sell");
2. 将buy变量转换为const char*类型,例如:strcmp(buy.c_str(), "sell");
其中第二种方法需要确保buy变量是一个字符串类型,例如std::string。
相关问题
cannot convert 'ElemType {aka STU}' to 'const char*' for argument '2' to 'int strcmp(const char*, const char*)'
这个错误是因为你在使用strcmp函数时,第二个参数应该是const char*类型,但你传入的是ElemType类型。你需要将ElemType类型转换成const char*类型。
例如,如果你想比较ElemType类型的name成员变量与一个字符串是否相等,你可以这样写:
```c++
if (strcmp(elem.name.c_str(), "some string") == 0) {
// do something
}
```
这里使用了string类的c_str()函数将string类型转换成const char*类型。你需要根据实际情况来修改代码。
142 102 D:\xaizai\WeChat Files\wxid_ty14wysa87tx22\FileStorage\File\2023-05\未命名5(2).cpp [Error] cannot convert 'char (*)[20]' to 'const char*' for argument '1' to 'int strcmp(const char*, const char*)'
这个错误信息是说,在你的代码中,你尝试将一个 `char (*)[20]` 类型的变量作为 `strcmp` 函数的第一个参数传递,但是 `strcmp` 函数的第一个参数需要的是 `const char*` 类型的指针,所以这种类型不匹配。通常来说,这种错误是由于将一个数组名作为指针传递给函数,而数组名在 C 语言中会被转换为指向数组第一个元素的指针,所以你需要将 `char (*)[20]` 类型的变量转换成 `const char*` 类型的指针,再传递给 `strcmp` 函数。你可以将该变量的第一个元素的地址作为 `strcmp` 函数的第一个参数传递,如下所示:
```c++
char str[20] = "Hello";
int result = strcmp(str, "World");
```
在上面的示例中,我们将 `str` 数组的第一个元素的地址作为 `strcmp` 函数的第一个参数传递,这样就可以解决类型不匹配的问题。
阅读全文
相关推荐















