strcmp从“char”到“const char*”的转换

strcmp conversion from ‘char’ to ‘const char*’

本文关键字:char 转换 const strcmp      更新时间:2023-10-16

我的strcmp有问题。

这是我的密码。

while (strcmp("m",wood) !=0 || strcmp("j",wood) !=0 || strcmp("o",wood) !=0){
    cout << "(m for mahogany, o for oak, or p for pine): ";
cin >> wood;
}

这是我的错误:

dining.cpp: In member function ‘void DiningSet::woodType()’:
dining.cpp:76:24: error: invalid conversion from ‘char’ to ‘const char*’ [-fpermissive]
/usr/include/string.h:143:12: error:   initialising argument 2 of ‘int strcmp(const char*, const char*)’ [-fpermissive]
dining.cpp:76:48: error: invalid conversion from ‘char’ to ‘const char*’ [-fpermissive]
/usr/include/string.h:143:12: error:   initialising argument 2 of ‘int strcmp(const char*, const char*)’ [-fpermissive]
dining.cpp:76:72: error: invalid conversion from ‘char’ to ‘const char*’ [-fpermissive]
/usr/include/string.h:143:12: error:   initialising argument 2 of ‘int strcmp(const char*, const char*)’ [-fpermissive]

wood的类型为char:它必须是一个字符串,即char*,才能在strcmp()中使用。

更改为:

while ('m' != wood && 'j' != wood && 'o' != wood)

错误显示第二个参数有问题。它应该是const char *

strcmp的签名为:

int strcmp ( const char * str1, const char * str2 );