Причина объяснена выше Люркером.Если вы хотите проверить, что первый аргумент - это символ из командной строки, isascii может быть тем, что вы ищете.Чтобы избежать ошибки сегментации, необходимо выполнить дополнительную проверку argv [1].
if (argv[1][1]!='\0'||!isascii(argv[1][0])) {
puts("Error: First argument not a char type\n");
exit(0);
}
"isascii () проверяет, является ли c 7-разрядным значением без знака, которое соответствует вбору символов ASCII."и не забудьте #include <ctype.h>