#include <stdio.h>
#include <stdlib.h>
void CheckStringAsInt(char *text)
{
printf("Check string %s\n", text);
for (int i = 0; text[i] != '\0'; i++)
{
if (i == 0 && (text[i] == '-' || text[i] == '+'))
continue;
if ((int)text[i] < 48 || (int)text[i] > 57) // проверяем, что это число от 0 до 9
{
printf("String is not integer\n\n");
return;
}
}
printf("String is integer\n\n");
}
int main()
{
char *text = "-100";
CheckStringAsInt(text);
text = "+100";
CheckStringAsInt(text);
text = "1234567890";
CheckStringAsInt(text);
text = "12345678901234567890";
CheckStringAsInt(text);
text = "123456d";
CheckStringAsInt(text);
text = "test";
CheckStringAsInt(text);
scanf("%s", &text);
return 0;
}
#include <stdio.h>
int main()
{
char str[101];
int i=0;
printf("Введите десятичное целое число: ");
scanf("%100s",str);
/* цикл по символам введенной строки */
while(str[i])
{
switch(str[i])
{
case '-':
/* знак минус допустим только первым и не единственным символом */
if( ! (i==0 && str[1]) )
{
printf("Error");
return 1;
}
break;
case '0':
/* Знак 0 допустим только единственным символом, либо после другой цифры */
if( i==0)
{
if(str[1])
{
printf("Ошибка ввода.");
return 1;
}
}
else
{
if(str[i-1]=='-')
{
printf("Ошибка ввода.");
return 1;
}
}
break;
default:
/* В остальных случаях допустима только цифра */
if(str[i]<'0' || str[i]>'9')
{
printf("Ошибка ввода.");
return 1;
}
break;
}
i++;
}
printf("Верная запись целого числа.");
return 0;
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.