[英]Error : Invalid conversion from char to const char *
我从第一天起就面临这个问题。
实际上,我正在阅读的书上有这样写的程序,但是当我在 Eclipse IDE 上实际查看时,它不能正常工作,总是显示以下错误:
从 char 到 const char * 的无效转换
虽然我知道问题出在哪里,但我不知道如何解决这个问题,而且我在每个有字符串操作的程序中都面临这个问题。
这个if
语句的错误是:
if(,strcmp(str, *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;
}
strcmp()
比较两个以 null 结尾的const char*
字符串。 但是,您正在尝试将以空字符结尾的char[]
字符串与单个char
进行比较,因此出现错误。 这是因为您取消引用第二个const char*
字符串以访问其第一个char
元素。
ptr
是一个const char*
指针数组,因此在访问ptr[i]
时需要删除额外的*
取消引用运算符,以便比较整个字符串,而不仅仅是字符串的单个字符,例如:
if (strcmp(str, ptr[i]) == 0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.