I'm trying to compare two character and see which one is lexicographic longer and sorting by it problem is I'm not sure how to compare single character I tried doing it with strcmp like
struct example
{
char code;
}
if (strcmp(i->code, j->code) < 0)
return 1;
warning: passing argument 1 of âstrcmpâ makes pointer from integer without a cast
warning: passing argument 2 of âstrcmpâ makes pointer from integer without a cast
I know that strcmp is for strings, should I just malloc and make the char code into a string instead, or is there another way to compare single character开发者_JS百科s?
char is an integer type.
You compare char objects using the relational and equality operators (<, ==, etc.).
strcmp() takes a null-terminated string, so in C a char *. You are passing it a single character, a char. This char gets automatically promoted to an int in the expression (this always happens with char's in expressions in C) and then this int is attempted to change to a char*. Thank god this fails.
Use this instead:
if (i->code < j->code)
Since you're comparing chars and not null terminated strings, do the following:
if (i->code < j->code)
Try
if (i->code < j->code)
...
加载中,请稍侯......
精彩评论