Задание:
Дан текст. Определить, является ли он правильной десятичной записью целого числа.
Доработать:
Отрицательные числа сделать правильной записью целого числа. Научится определять числа по типу "001" - как правильные, т.к число не может начинаться с 0.
Код:
https://pastebin.com/9ThwHBv7
C/C++
Помогите доработать код на СИ по теме строки
Твое задание давно видел, что там сложного не могу понять.
Я могу такой вариант «правильной десятичной записью целого числа»
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Russian");
printf("Введите число:");
char str[100] = "";
scanf("%s", str);
bool t = true;
for( int i = 0; i < strlen(str); i++ )
{
if(i==0 && (str[i]=='-' || str[i]=='+')) continue;
if( str[i] < '0' || str[i] > '9' )
{
t = false;
break;
}
}
if( t )
printf("Правильное число");
else
printf("Неправильное число");
getchar();
getchar();
}
Я могу такой вариант «правильной десятичной записью целого числа»
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Russian");
printf("Введите число:");
char str[100] = "";
scanf("%s", str);
bool t = true;
for( int i = 0; i < strlen(str); i++ )
{
if(i==0 && (str[i]=='-' || str[i]=='+')) continue;
if( str[i] < '0' || str[i] > '9' )
{
t = false;
break;
}
}
if( t )
printf("Правильное число");
else
printf("Неправильное число");
getchar();
getchar();
}
Резка Плитки Резка Под 45
Забавно, автор требовал усовершенствовать чтобы 001 считалось правильным числом, потому что целое число НЕ может начинаться на 0, вы так и сделали)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char s[20],*p; scanf("%s",s); strtol (s,&p,10);
printf("%s\n",(strlen(s)==p-s?"Yes":"No")); return 0;}
#include <stdlib.h>
#include <string.h>
int main(){
char s[20],*p; scanf("%s",s); strtol (s,&p,10);
printf("%s\n",(strlen(s)==p-s?"Yes":"No")); return 0;}
Резка Плитки Резка Под 45
ДЗ: написать свой класс вектор который умеет тота и тота.
Краб: Не вопрос. typedef ::vector<int> myvector;
Краб: Не вопрос. typedef ::vector<int> myvector;
bool isint(const char* str)
{
const char* numeric = "-0123456789";
bool minus = false;
if (str[0] == '-' && count(str,str+strlen(str), '-') == 1) minus = true; //если во всей строке 1 минус и он вначале - устанавливаем флаг минус
if (minus && str[1] == '0' || !minus && str[0] == '0') return false; //если перый нуль или -0 вернуть false
if (strspn(str, numeric + !minus) != strlen(str)) return false; //если вся строка состоит только из нумерик (с поправкой на -) ок, иначе false
return true;
}
{
const char* numeric = "-0123456789";
bool minus = false;
if (str[0] == '-' && count(str,str+strlen(str), '-') == 1) minus = true; //если во всей строке 1 минус и он вначале - устанавливаем флаг минус
if (minus && str[1] == '0' || !minus && str[0] == '0') return false; //если перый нуль или -0 вернуть false
if (strspn(str, numeric + !minus) != strlen(str)) return false; //если вся строка состоит только из нумерик (с поправкой на -) ок, иначе false
return true;
}
За C ничего сказать не могу только C++
Да и до конца что от меня требуется я не понимаю
Да и до конца что от меня требуется я не понимаю
Юрий Хороший
Если в программу ввести -1 - то он скажет, что число не правильное, хотя это не так или 001 - тоже самое. Нужно это исправить
Похожие вопросы
- Помогите написать код на Си, по теме "строки".
- Помогите переделать код на Си
- Как можно доработать код С++?
- Помогите пожалуйста доработать код, язык С++
- Помогите, пожалуйста, срочно. Прокомментировать код на Си
- Помогите написать код c++ со строками
- Помогите дополнить код СИ, пж.
- Помогите написать код! С++ Строки (без использования классов)
- Помогите перевести код с С++ на Си
- Нужен код на Си помогите пж