Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 10.11.2019
Сообщений: 4

Проверить является ли введенная строка записью целого числа

09.12.2019, 05:33. Показов 2963. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Написал программу, но мне выдает 3 ошибки, не могу понять как их исправить.
1) Усечение из char к bool (В этой строке if (s4[0] >= '0' && s4[0] <= '9' || s4[0] = '-'))
2)Левый операнд должен быть левосторонним значением (В этой строке if (s4[0] >= '0' && s4[0] <= '9' || s4[0] = '-'))
3) Выражение должно быть допустимым для изменения левосторонним значением (Это про строку s4)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream> 
#include <stdio.h>
#include <string>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    string s4, s1;
    int n, n1, k, i;
    char ch, f;
    cout << "Введите ваще целое число" << "\n";
    getline(cin, s1);
    n = s1.length();
    ch = ' ';
    for (i = 0; i < n - 1; i++)
    {
        if (s1[i] != ch)
            s4 = s4 + s1[i];
    }
    n1 = s4.length();
    if (s4[0] >= '0' && s4[0] <= '9' || s4[0] = '-')
    {
        for (i = 1; i < n1 - 1; i++)
        if (s4[i] >= '0' && s4[i] <= '9')
            cout << "Данная строка является записью целого числа" << "\n";
        else
            cout << "Данная строка не является записью целого числа" << "\n";
    }
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.12.2019, 05:33
Ответы с готовыми решениями:

Определить, является ли введенная тестовая строка записью отрицательного целого числа
Определить, является ли введенная тестовая строка записью отрицательного целого числа.

Определить, является ли введенная строка правильной записью отрицательного целого числа
Определить, является ли введенная строка правильной записью отрицательного целого числа.

Определить, является ли введённая строка правильной записью целого десятичного числа без знака
Определить, является ли введённая строка правильной записью целого десятичного числа без знака - С++

3
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
09.12.2019, 06:02
Лучший ответ Сообщение было отмечено Vampir4ikus как решение

Решение

если без проверки на лидирующие нули, можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
 
int main()
{
    int k=0; 
    string s;
    cout << "String:\n";
    getline(cin, s);
    
    if (s[0]!='-' && s[0]!='+' && !isdigit(s[0])) {k=1;cout << "NO\n";}
    else
    for (size_t i=1; i<s.size(); i++)   
        if (!isdigit(s[i])) {k=1;cout << "NO\n";break;}    
        
    if (!k) cout << "YES\n";
    
system("pause");
return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от Vampir4ikus Посмотреть сообщение
s4[0] = '-'
s4[0] == '-' если что
1
0 / 0 / 0
Регистрация: 10.11.2019
Сообщений: 4
09.12.2019, 06:19  [ТС]
От души, все заработало. Просто один знак забыл написать и столько нервов)
0
Модератор
Эксперт С++
 Аватар для zss
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,252
09.12.2019, 06:52
Цитата Сообщение от Vampir4ikus Посмотреть сообщение
От души, все заработало
Если Вы про Ваш код, то это неправда.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream> 
#include <stdio.h>
#include <string>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    cout << "Введите ваше целое число" << "\n";
    string s1;
    getline(cin, s1);
    size_t n = s1.length();
    string s4;
    for (size_t i = 0; i < n; i++)
    {
        if (s1[i] != ' ')
            s4 +=s1[i];
    }
    n = s4.length();
    size_t i = 0;
    if( s4[0] >= '0' && s4[0] <= '9' || s4[0] == '-')
    {
        for (i = 1; i < n; i++)
            if( s4[i] < '0' || s4[i] > '9' )
                break;
    }
    if (i != n)
        cout << "Данная строка не является записью целого числа" << "\n";
    else
        cout << "Данная строка является записью целого числа" << "\n";
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.12.2019, 06:52
Помогаю со студенческими работами здесь

Определить, является ли введенная строка правильной записью целого шестнадцатеричного числа без знака
Помогите с задачами. 1)Определить, является ли введенная строка правильной записью целого шестнадцатеричного числа без знака. 2)...

Является ли строка правильной записью целого десятичного числа
2) Ввести строку с клавиатуры. Определить, является ли она правильной записью целого десятичного числа. Вывести со-ответствующее сообщение....

Определить, является ли заданная строка правильной записью целого числа
Привет, не могу понять, как написать программу. (Определить, является ли заданная строка правильной записью целого числа (возможно со...

Проверить является ли строка является десятичной записью числа, кратного 9
Программа. В заданную непустую строку входят только буквы и цифры. Определить, удовлетворяет ли она следующему свойству: строка является ...

Проверить является ли строка десятичной записью числа, кратного 3
Задание: для заданных трёх строк определить, какая из них является десятичной записью числа, кратного 3.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru