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

Ввод букв и чисел в строку с++

26.11.2020, 14:26. Показов 3510. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Столкнулся с задачей, в которой нужно ввести в строку только английские буквы и числа. Если ввожу, например, символы !, ", %, ? и т.д., должно выдать ошибку. Я сделал это так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
setlocale(LC_ALL, "Rus");
string s;
 
cout << "Введите строку из цифр и символов: ";
getline(cin,s);
 
for (int i = 0; i < s.size(); i++)
{
if ( (int)s[i] < 48  || ( (int)s[i] > 57  && (int)s[i] < 65 ) || ((int)s[i] > 90 && (int)s[i] < 97 ) || (int)s[i] > 122 )
        { cout << "Ошибка" << endl; return 0;}
}
 
 
}
Вроде бы все работает, но выглядит некрасиво. Подскажите, пожалуйста, есть ли еще какие-то способы решить эту задачу? А то не очень хочется каждый раз добавлять новое условие. Например, если нужно будет включить пробел, то это вообще весь код придется переделывать.

Спасибо за помощь
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.11.2020, 14:26
Ответы с готовыми решениями:

Ввод и соединение букв в строку пока не введен символ #
1.Объедините два списка, найдите МАХ и удалите его 2.Организовать ввод букв и их соединение в строку до тех пор, не будет введен символ...

Ввод в QLineEdit чисел и букв
Доброго времени суток!!! вопрос в следующем... как из QLineEdit получить выражение??? например у меня есть уравнение x+4x-2=0, и нужно его...

Заблокировать ввод чисел до 60 в Edit и букв
Надо заблокировать ввод чисел до 60 в Edit и букв. Вот черчеж-&gt; if((Key&gt;='0')&amp;&amp;(Key&lt;='9'))return; else if(Key==VK_BACK)return; else...

3
5 / 5 / 1
Регистрация: 06.10.2020
Сообщений: 176
26.11.2020, 14:32
Можно так:

C++
1
2
3
bool HasSpecialSymbols(const char *str) {
    return str[strspn(str, "!№;")] != 0;
}
или так:

C++
1
2
3
4
std::string  x(/*Load*/);
if (x.find_first_not_of("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_") != std::string::npos) {
    std::cerr << "Error\n";
}
0
7 / 4 / 3
Регистрация: 14.04.2020
Сообщений: 88
26.11.2020, 14:53  [ТС]
Цитата Сообщение от mangomang Посмотреть сообщение
C++
1
2
3
4
std::string  x(/*Load*/);
if (x.find_first_not_of("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_") != std::string::npos) {
    std::cerr << "Error\n";
}
C++
1
 
Разобрался с этой функцией, а заодно и нашел много полезного для себя. Спасибо большое!
0
 Аватар для Nishen
1359 / 857 / 366
Регистрация: 26.02.2015
Сообщений: 3,824
26.11.2020, 14:59
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
#include <algorithm>
#include <iostream>
#include <string>
 
 
 
int main() {
 
    std::string text;
 
    std::getline(std::cin, text, '\n');
 
    auto is_alnum = [](char ch) { return std::isalnum(ch); };
 
    if (std::all_of(text.begin(), text.end(), is_alnum)) {
 
        std::cout << "It's ok!\n";
 
    } else {
 
        std::cout << "There is a mistake in the text!\n";
 
    }
 
    return 0;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.11.2020, 14:59
Помогаю со студенческими работами здесь

Ввод только букв/чисел stringgrid
Здравствуйте, помогите пожалуйста. у меня есть таблица stringgrid из 16 столбиков , как разрешить ввод только букв в первый столбик а во...

Как запретить ввод чисел, букв?
Всем доброго вечера. Стоит такой вопрос, как запретить в одном случае ввод цифр а во втором ввод символов? Иначе если их совмещать, то...

Реализовать проверку или запретить ввод букв, только чисел
Для поля Tedit запретить ввод букв, разрешить ввод чисел.

Ввод чисел в строку с условием
Всем привет! Подскажите, как обеспечить ввод чисел в одну строку, через пробел, с одновременной проверкой, что введенное число не ноль...

Запрет на ввод чисел в строку
Как можно сделать посимвольный ввод строки, что бы каждый символ можно было проверять на принадлежность к числу и если это не число, то не...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru