определимся что есть "правильная запись десятичного числа"
думаю, для начала этого достаточно, хотя нужно было бы ещё проверять запись с + и -, а так же научный подход с мантиссой
итак что надо сделать?
1. определить что строка не начинается с "0"
2. определить что в ней только цифры (отсеем дробные и строки с буквами)
этого достаточно чтобы сказать, что это правильная запись десятичного числа
char * s = "тут наша строка";
if (s[0] != '0')
{
for (int i=0; i < strlen(s); i++)
{
bool error = false;
if (!isdigit(s[i]))
{
error = true;
break;
}
if (!error)
{
cout << "это правильная запись десятичного числа" << endl;
}
}
}
- "1234" - да
- "056" - нет - так принято записывать 8-ричные числа
- "abc123" - нет - тут не только цифры
- "123.45" - нет - есть запятая, а значит это дробное
думаю, для начала этого достаточно, хотя нужно было бы ещё проверять запись с + и -, а так же научный подход с мантиссой
итак что надо сделать?
1. определить что строка не начинается с "0"
2. определить что в ней только цифры (отсеем дробные и строки с буквами)
этого достаточно чтобы сказать, что это правильная запись десятичного числа
char * s = "тут наша строка";
if (s[0] != '0')
{
for (int i=0; i < strlen(s); i++)
{
bool error = false;
if (!isdigit(s[i]))
{
error = true;
break;
}
if (!error)
{
cout << "это правильная запись десятичного числа" << endl;
}
}
}