Проверка типа argv - C (СИ)
Формулировка задачи:
Как можно проверить тип переданного аргумента?
char - это числовой тип данных. То-есть можно проверить, является ли argv[1] > 47 && argv[1] < 58. Тогда мы можем узнать, вписано ли значение в интервале от 0 до 9 (ASCII код 48 - 57). Но что делать с записью 100?
К примеру,
./a.out 234
int main(int argc, char *argv[]) { unsigned int size; if( argc > 1 ) { // тут надо проверить является ли argv[1] int или нет. // size = argv[1]; } else { size = 10; } }
Решение задачи: «Проверка типа argv»
textual
Листинг программы
#include <stdlib.h> #include <stdio.h> void main(int argc, char **argv) { int i, x; for (i=1;i<argc;i++) { x = atoi(argv[i]); printf("argv[%d]=%d\n\r",i,x);}; };
Объяснение кода листинга программы
В данном коде выполняется проверка типа argv. Список действий в коде:
- #include
- подключаем необходимую библиотеку для работы с системой - #include
- подключаем необходимую библиотеку для работы с выводом в консоль - void main(int argc, char argv)** - объявляем функцию main, которая будет выполнять проверку
- int i, x; - объявляем две переменные для выполнения цикла и хранения значения
- for (i=1;i<argc;i++) - начинаем цикл со второго элемента массива argv (так как первый элемент это имя программы) и выполняем до конца массива
- x = atoi(argv[i]); - преобразуем строку в целое число и сохраняем его в переменной x
- printf(
argv[%d]=%d\n\r
,i,x); - выводим значение переменной x и индекс элемента массива argv - }; - закрываем цикл
- }; - закрываем функцию main, которая является точкой входа в программу
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д