В колледже меня спросили, определяет ли наша программа, является ли строка, введенная из аргументов командной строки, целым числом, которого она не имела (./Program 3.7
). Теперь мне интересно, как я могу это обнаружить. Таким образом, ввод, как, например, a
, недопустим, что обнаруживает atoi, но ввод, как, например, 3.6
, должен быть недействительным, но atoi преобразует это в целое число
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc > 1) {
int number = atoi(argv[1]);
printf("okay\n");
}
}
Но offcourse okay должен быть напечатан, только если argv [1] действительно целое число. Надеюсь, мой вопрос понятен. Большое спасибо.