#include <stdio.h>

char *str_chr(const char *str, int c)
{
for ( ; *str; str++){
if (*str == c)
return ((char *)str);
}
return (NULL);
}

int main(void)
{
char str[10], *p;
char uletter[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

printf("英大文字を入力してください:");
scanf("%s", str);

p = str_chr(uletter, str[0]);
if (p !=NULL) puts(p);

return (0);
}

本に載ってた例題で、読み込んだ英大文字以降のアルファベットを表示するというプログラムなんですが
最初の関数を宣言するときint型の引数cを取る理由がわかりません。
char型ではいけないのですか?