没有强制转换的整数的strcmp指针

时间:2011-05-08 22:16:42

标签: c character

我正在尝试比较两个字符并查看哪一个字典更长并按字母排序问题是我不确定如何比较单个字符我尝试用strcmp做

struct example
{
 char code;
}
if (strcmp(i->code, j->code) < 0)
    return 1;

警告:传递âstrcmp的参数1使整数指针不带强制转换

警告:传递âstrcmp的参数2使得指针来自整数而没有强制转换

我知道strcmp用于字符串,我应该只是malloc并将char代码改为字符串,还是有另一种比较单个字符的方法?

4 个答案:

答案 0 :(得分:3)

char是整数类型。

使用关系和相等运算符(char<等)比较==个对象。

答案 1 :(得分:3)

strcmp()采用以null结尾的字符串,因此在C中char *。你传给它一个字符char。此char将自动提升为表达式中的int(这在C中的表达式中始终与char一起发生),然后尝试将此int更改为char* }。感谢上帝失败了。

请改用:

if (i->code < j->code)

答案 2 :(得分:2)

由于您要比较字符而不是空终止字符串,请执行以下操作:

if (i->code < j->code)

答案 3 :(得分:0)

尝试

if (i->code < j->code)
    ...