Контрольная цифра C программирования - PullRequest
1 голос
/ 28 октября 2010
bool print_date(Date *d, char **argv) {

        if (isdigit(*argv+1)) {
                return printf("is d");
        } else {
                return printf("is not d");
        }

}

Вышеуказанная функция не работает. * argv + 1 - пользовательский ввод, это строка или какие типы при передаче? кто-нибудь может помочь?

 int main(int argc, char *argv[])
 {

  Date d;

  get_date(&d, argv);


 }

Ответы [ 2 ]

3 голосов
/ 28 октября 2010

*argv+1 вычисляет адрес для первого символа 0-го аргумента (то есть имени исполняемого файла) и добавляет 1 для перехода к второму символу этого символа. .

Вы можете попробовать использовать argv[1], это будет означать первый аргумент после имени исполняемого файла, как char *.

0 голосов
/ 28 октября 2010

Я предполагаю, что вы действительно хотите *(argv + 1).То, как вы это написали, состоит в том, что он будет разыменовывать первый символ программы, добавлять его и проверять, является ли он цифрой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...