Использование Strcmp с аргументами - PullRequest
0 голосов
/ 11 октября 2018
if (strcmp(&(argv[i][0]),"-")==0){
fprintf(stderr,"invalid option: '-%c'\n",(argv[i][1]));}

Я пытаюсь передать флаг '-g' в качестве аргумента и хочу, чтобы код распознал '-' и напечатал его как недопустимый флаг.Это не похоже на работу.Что мне делать?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Выражение &(argv[i][0]) на 100% эквивалентно просто argv[i].Вы не можете сформировать ведущую подстроку строки таким образом.Для вашей конкретной задачи было бы проще выполнить однократное сравнение char с помощью оператора ==:

if (argv[i][0]) == '-') {
    fprintf(stderr, "invalid option: '-%c'\n", argv[i][1]);
}
0 голосов
/ 11 октября 2018

argv [i] [0] - первый символ в строке argv [i].

используйте только if (argv[i][0] == '-') или if (strncmp(argv[i],"-", 1) == 0)

...