С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322

Вывести только те слова строки, в которых есть и буквы и цифры

12.09.2017, 17:13. Показов 6333. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача написать программу которая получает строку а выводит только те слова в которых есть и буквы и цифры
моя программа работает правильно, но меня беспокоит можно ли её улучшить
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
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
#include <iomanip>
using namespace std;
int hasSymbolz(char* path,char r) {
     char SYMBOLZ[] = "1234567890";
      r = 0; //проверка на цифру
      for (int i = 0; path[i]; ++i) {
          if (strchr(SYMBOLZ, path[i]) != 0)
              r++;
      }
          if (r > 0)
              return r;
          
      }
 
void main()
{
    setlocale(LC_ALL, "");
    srand(time(0));
    char temp[100] = {}, Array[] = { "qwertyuiopasdfghjklzxcvbnm" }, A[100] = {};
    char * path, o = 0; int y;//можно ли как-то заменить инициализацию Array 
    char r[12] = " ,./!?;:"\'";
    SetConsoleCP(1251);
    cin.getline(temp, 100, '\n');
    SetConsoleCP(866);
    path = strtok(temp, r);
    while (path != NULL){
        if (hasSymbolz(path, o) != 0 && strspn(path, Array)!=0)//это условие тоже хотелось бы улучшить
            //если в слове есть цифры и есть буквы
         y = hasSymbolz(path, o);//ко-во цифр
        int n = strlen(path);//длина текущего слова
        if (strspn(path, Array) == (n - y)){//эта функция возвращает индекс первого не совпадающего символа
            //есле в слове 
 
            strcat(strcat(A, path), " ");//соединяю
        }
        
            path = strtok(NULL, r);
        }
 
        cout << A;
    
    system("pause");
}
пожалуйста кто знает помогите)))

Добавлено через 15 минут
хотя есть ода еще проблемка
если сначала цифры потом буквы не выводит слово
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.09.2017, 17:13
Ответы с готовыми решениями:

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

Прочитать текст из файла и вывести в другой файл только те строки, в которых есть слова, начинающиеся с буквы М
Прочитать текст из файла и вывести в другой файл только те строки, в которых есть слова, начинающиеся с буквы М.

Ввести строку, ввести слово. Вывести из строки только те слова, в которых есть хоть одна буква из введённого слова
Здравствуйте, товарищи программисты. Я не смогла смириться с поражением и это снова привело меня к вам. Задание написано в заголовке....

6
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
12.09.2017, 18:05
vfhbf,
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
33
34
35
36
37
#include<iostream>
#include<vector>
#include<string>
 
int main()
{
    using std::string;
    using std::cout;
 
    string str = "kdf doi44 7 hdsi87 76d n?d89";
 
    int i = 0;
    while (str[i] != '\0')
    {
        int word = 0, num = 0;
        string truestr = "";
        while (str[i] != ' ' && str[i] != '\0')
        {
            truestr += str[i];
            if ((int)str[i] > 47 && (int)str[i] < 58)
                num++;
            else if ((int)str[i] > 96 && (int)str[i] < 123)
                word++;
                
            i++;
        }
 
        if (word > 0 && num > 0)
            cout << truestr << " ";
        if (str[i] == '\0')
            break;
        i++;
    }
 
    system("pause");
    return 0;
}
Решение лобовое. Можно все это упростить.
1
Рэмбо комнатный
 Аватар для GeFacle
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
12.09.2017, 18:21
как у тебя вообще что-то выводится без #include <iostream> и #include <string> ?
0
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
12.09.2017, 18:51  [ТС]
GeFacle, да сейчас не об этом речь идет
я же не спрашиваю у тебя ка кие мне библиотеки подключать..

Добавлено через 3 минуты
Senarist, но при этом функции для строк нужно использовать.
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
12.09.2017, 19:05
vfhbf, char* ?
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
12.09.2017, 21:08
vfhbf, здравствуйте! Вам нужно, чтобы в каждом слове обязательно присутствовали и буквы и цифры одновременно или можно по-отдельности? Я, вообще, за регулярные выражения.
0
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
12.09.2017, 22:10  [ТС]
Fixer_84, спасибо большое, я уже сама разобралась
тема закрыта.

Добавлено через 16 секунд
Fixer_84, спасибо большое, я уже сама разобралась
тема закрыта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.09.2017, 22:10
Помогаю со студенческими работами здесь

Получить 2 новые строки, одна из которых содержит только буквы, а другая только цифры
Дана строка состоящая из букв и цифр. Получить 2 новые строки, одна из которых содержит только буквы, а другая только цифры.

Получить две новые строки, одна из которых содержит только буквы, другая только цифры
добрый вечер! не могли бы вы помочь с двумя задачками? :) 1) Дана строка, состоящая из букв и цифр. Получить две новые строки, одна из...

Найти слова, в которых есть цифры и буквы латинского алфавита
Задание такое:Дана строка. Словом текста является последовательность цифр и букв латинского алфавита; между соседними словами - не менее...

Множества: получить две новые строки, одна из которых содержит только буквы другая - только цифры
дана строка состоящая из букв и цифр. получить две новые строки, одна из которых содержит только буквы другая только цифры. Решить с...

Вывести только симметричные слова либо слова, в которых буквы упорядочены в порядке, обратном алфавитному
С консоли вводится текст. Напишите программу, которая будет выводить только те слова, которые симметричны (например, RADAR, ALLA), либо в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru