Проверка типа 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, которая является точкой входа в программу