C++代码报错invalid conversion from char to const char * 解决方案咨询
问题修复:invalid conversion from char to const char *
错误原因
ptr是一个指向const char的指针数组,ptr[i]本身就是const char*类型,直接指向数组中第i个字符串的首地址。而*ptr[i]会取到该字符串的第一个字符(char类型),但strcmp函数要求两个参数都是const char*类型,因此类型不匹配触发报错。
修复方案
只需将if(!strcmp(str, *ptr[i]))中的*ptr[i]改为ptr[i]即可。
修正后的完整代码
#include <iostream> #include <cstring> using namespace std; int main() { const char *ptr[10] = { "books", "television", "computer", "sports" }; int i = 0; char str[25]; cout << "\nEnter your favorite leisure pursuit here :" << "\n"; cin >> str; for (i = 0; i < 4; i++) { if (!strcmp(str, ptr[i])) { cout << "\n your favorite pursuit is available here " << endl; break; } } if (i == 4) { cout << "\n\nYour favorite leisure is not available here" << endl; } return 0; }
内容的提问来源于stack exchange,提问作者Jasmeet Singh
相关产品推荐
相关产品推荐

