如何在g ++中使用strcmp

时间:2016-10-29 20:41:37

标签: c++ ubuntu g++

我在linux ubuntu上编译了.cc文件和g ++,我想用srtcmp()函数来比较两个字符串。字符串不是常量。用户会给他们两个,但我收到这个错误:

错误:无效转换为'char'到'const char *'[-fpermissive]

这是我的代码:

if (!strcmp(a[i].personalNo,pcode)){
    #some code
}

我可以使用哪个函数代替strcmp()来比较两个字符串?

1 个答案:

答案 0 :(得分:2)

问题不在于功能,而在于您使用它的方式。

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

strcmp需要两个const char *个参数。

错误告诉您您正在为函数char提供问题,因此问题出在personalNo和/或pcode的类型上。你的错误可能在于声明这两个变量的类型。您可能希望将其类型更改为char *,因为char只存储一个字符,而char *是一个字符数组。

另外,在C ++中比较两个字符串的另一种方法是使用std::string。然后,您可以执行以下操作(假设personalNopcode都是std::string

if (a[i].personalNo != pcode){
    #some code
}