Как я узнаю, что моя строка args [] имеет тип char? - PullRequest
0 голосов
/ 08 июня 2018

Я пишу программу, в которой первый аргумент должен иметь тип char, а второй - int.Я уже написал код для типа int, но не могу сделать его для char.Я искал везде, но я не могу найти ответ на свою проблему, вот код:

int main(int argc, char *argv[]){
    if(argc != 3){
         puts("Error: Invalid number of arguments\n");
         exit(0);
    }
    if(argv[1] ??){
         puts("Error: First argument not a char type\n");
         exit(0);
    }
}

1 Ответ

0 голосов
/ 08 июня 2018

Причина объяснена выше Люркером.Если вы хотите проверить, что первый аргумент - это символ из командной строки, 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>

...