В этой строке:
if (*argv[1] == "AB")
вы сравниваете char
с char*
.Это разные типы.Кроме того, даже если первый операнд был char*
, вы все равно не должны использовать ==
для сравнения строк, поскольку он просто сравнивает значения указателя.Используйте strncmp()
вместо
if (strncmp("AB", argv[1], 2) == 0)
Это условие выполняется, если два первых символа argv[1]
равны "AB"
, например, если argv[1]
равно "ABC"
.Если вы хотите проверить, что argv[1]
в точности "AB"
, используйте strcmp()
вот так
if (strcmp("AB", argv[1]) == 0)
Обратите внимание, что для сравнения отдельных символов вполне допустимо использовать ==
:
if (argv[1][0] == 'A')
Кроме того, прежде чем предположить, что argv[1]
является действительным, вы должны проверить argc
, чтобы убедиться, что вы действительно получили аргумент.