我在linux ubuntu上编译了.cc文件和g ++,我想用srtcmp()函数来比较两个字符串。字符串不是常量。用户会给他们两个,但我收到这个错误:
错误:无效转换为'char'到'const char *'[-fpermissive]
这是我的代码:
if (!strcmp(a[i].personalNo,pcode)){
#some code
}
我可以使用哪个函数代替strcmp()来比较两个字符串?
答案 0 :(得分:2)
问题不在于功能,而在于您使用它的方式。
int strcmp ( const char * str1, const char * str2 );
strcmp
需要两个const char *
个参数。
错误告诉您您正在为函数char
提供问题,因此问题出在personalNo
和/或pcode
的类型上。你的错误可能在于声明这两个变量的类型。您可能希望将其类型更改为char *
,因为char
只存储一个字符,而char *
是一个字符数组。
另外,在C ++中比较两个字符串的另一种方法是使用std::string
。然后,您可以执行以下操作(假设personalNo
和pcode
都是std::string
:
if (a[i].personalNo != pcode){
#some code
}