Если бы вы могли использовать другой способ, вы могли бы использовать strspn()
из string.h
.
size_t n = strlen(argv[1]);
if(strspn(argv[1], "0123456789")==n)
{
printf("Success\n");
}
else
{
printf("Error\n");
}
strspn()
возвращает количество байтов в начальном сегменте первой строки аргумента, которая состоит только из байтов f
от второй строки аргумента, в данном случае это числа.
Таким образом, если значение, возвращаемое strspn()
, равно длине строки, строка не содержит нецифровых символов.
strlen()
возвращает не совсем int
. Это size_t
. Лучше использовать последний вместо этого. См. strlen для возврата size_t? .