C语言[Error] invalid conversion from 'char' to 'const char*' [-fpermissive]

一个用户登录程序(以下代码为部分截取)
struct user{
int number;
char id[20];
char pwd[20];
char name[20];
int sex;//man 0 woman 1
int phonenumber;
int s;
};
struct user *u;
char id[20];
if((strcmp(u->id,id[20])==0)//比对用户名
printf("id is ok \n");
在编译时显示[Error] invalid conversion from 'char' to 'const char*' [-fpermissive],错误点在比对用户名那里,求指教

if((strcmp(u->id,id[20])==0)//比对用户名
这里有问题,改成
if((strcmp(u->id,id)==0)//比对用户名

这样才是两个字符串的比较
但是你这里u没有初始化,他是一个指针,系统是不自动给他分配空间的
id 也没有被初始化追问

试过了,错误信息变成[Error] expected ')' before '{' token。另外那个指针和数组都已经赋过值了,这里的代码只贴了一部分

追答

额你的if左边多了一个(
if(strcmp(u->id,id)==0)//比对用户名

这样就可以了

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-07
改为 if (strcmp(u->id, id) == 0)//比对用户名 \\没有初始化两个char数组比较起来可能会出现问题

C语言[Error] invalid conversion from 'char' to 'const char*...
但是你这里u没有初始化,他是一个指针,系统是不自动给他分配空间的 id 也没有被初始化

...报错[Error] invalid conversion from 'char' to 'char*' [-fpermi...
不要把ss定义为char型, 这样, string ss;另外scanf("%d %d %d %d %d",a,b,c,d,e);要写成scanf("%d %d %d %d %d",&a,&b,&c,&d,&e)strcat(ss,s)后面要加一个 ;不知道还有没有错,你运行看看吧。。。

...Error] invalid conversion from 'const char*' to 'char' [-fpe...
int main(){ char str[10] = "a b c";replace(str, 5);for (int i = 0;i<10;i++){ printf("%c",str[i]);} } char 类型赋值用' ' 不是" "

c++编程错误“invalid conversion from 'char*' to 'char' [-fpermissiv...
invalid conversion from 'char*' to 'char' [-fpermissive]|错误的意思是给的字符串太长,字符数组存不下。这里报错 char orange[5]={orange}; <--错误在这里报出 char ORANGEH[5]={ORANGE}; <--错误在这里报出 应改成:char orange[]="orange";char ORANGE[]="ORANGE";...

...error: invalid conversion from ‘int’ to ‘int*’ [-fperm...
你的out变量是一个指针变量吧,如果out已经被赋值了,用*out=index*d_samp_rate\/d_packet_len 就可以了,如果没有被赋值,需要先对他赋值,然后再用*out=index*d_samp_rate\/d_packet_len

c语言程序出现 invalid conversion from 'int (*)(int, int)' to...
有两种该法:include include"stdlib.h"int main(){ int i,j,k;int *q;q=(int*)malloc(sizeof(int));scanf("%d %d %d",&i,&j,&k);if(i>j){ if(i>k)q=i;else q=k;} else q=j;printf("%d",*q);return 0;system("pause");} 这样就行了 或者是#include include"stdlib...

c语言[Error] invalid conversion from 'void*' to 'student*' [-fperm...
上面调用了malloc函数,malloc函数的返回值是一个 void* ,而你直接赋值给student* 类型的变量p了,malloc前面加个强制转换就行,例如:student *p = (student *)malloc(sizeof(student));

c语言程序出现 invalid conversion from 'int (*)(int, int)' to...
您好,您定义了一个指向[返回值是int型,没有参数的函数]的指针,却用它指向[返回值是int,有两个int型参数的函数]所以不行,匹配了就好了

...报错[Error] invalid conversion from 'int' to 'int*' [-fpermissi...
if (checkqi(qipan[10])==1 )你的checkqi()函数输入参数明明是个指针,结果你非要把个整型数据当指针送进去。这不是自己找当机么……

c语言[Error] invalid conversion from 'void*' to 'student*' [-fperm...
做个强制类型转换就可以了。

相似回答