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

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

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

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

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

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

char是整数类型。

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

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

改为使用它:

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

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

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

尝试

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