2014-02-24 1 views
2

Если первый символ первого аргумента == "-" затем введите оператор if. Ошибка, которую я получаю, это «передача аргумента 1 из« strcmp »делает указатель из целого без приведения« Я также пробовал это с помощью fgetc, написанным немного по-другому, но все равно получаю эту ошибку. Если я его брошу, я получаю дамп ядра. Если аргумент содержит тир это будет сопровождаться цифрами внутри того же аргумента, так что я не могу просто смотреть на ARGV [1] в качестве одного гольца, если я мог бы условие было бы так просто, как: if (strcmp(argv[1], "-")==0)C- Проверка того, что первый символ в аргументе первой комендальной строки содержит определенный символ

Функция

int main (int argc, const char *argv[]){ 
    const char *test = argv[1]; 
    if (strcmp(test[0],"-")==0) 
     { 
      printf("saw there was a dash"); 
     } 
    return 0;} 

Спасибо за вашу помощь

+0

Если вы используете систему * nix (включая Linux и Mac OS X), вы также можете использовать ['getopt (3)'] (http://www.gnu.org/software/libc/manual /html_node/Example-of-Getopt.html#Example-of-Getopt) – nodakai

ответ

6

strcmp() является для сравнения строк, то есть нуль char массивов. Но здесь вы сравниваете два char, это будет делать:

if (test[0] == '-') 

Обратите внимание на одинарные кавычки в '-', это char буквальным.

+0

О, конечно, спасибо. Я выберу ваш ответ в качестве принятого ответа, как только разрешит период времени. – JRX

Смежные вопросы