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

Поиск символов в строке

09.04.2018, 11:14. Показов 810. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, помогите. Ломаю голову уже второй день
Условие задачи заключается в том, что пользователь вводит количество строк, после чего вводит эти строки.
В строках необходимо найти количество букв a,o,i,u,e,y.
Написал следующий код, и он вроде бы как работает правильно, но где то в 10% случаев выдаёт не правильный ответ(недосчитывает один символ). Если обозначить большое количество строк и записать в них кучу символов - он рано или поздно ошибётся. Почему? - не могу понять.
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
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "RUS");
    string str;
    int x, y, z, m, s, l;
    cin >> x;
    for (y = 1; y <= x; y++) {
        m = 0;
        cin.get();
        getline(cin, str);
        l = str.size();
        s = 0;
        for (z = 1; z <= l; z++) {
            if (str[m] == 'a' || str[m] == 'o' || str[m] == 'i'|| str[m] == 'u' || str[m] == 'e' || str[m] == 'y') {
                s++;
            }
            m++;
        }
        cout << s <<" ";
    }
    
    system("pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.04.2018, 11:14
Ответы с готовыми решениями:

Поиск символов в строке C++
Помогите с задачей, буду очень благодарен Суть задачи такова: в качестве строки вводим с клавиатуры положительное число. Длина строки не...

Поиск символов в строке
задание такое: Дана строка произвольной длины. Группы символов, разделенные пробелами (одним или несколькими), будем называть словами....

Поиск символов в строке
написать прогу, которая запрашивает с клавиатуры строку, длиной 100 символов ,а потом находит в ней символы (. , !) и выводит на экран...

7
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
09.04.2018, 11:54
строка 17 for (z = 0; z <l; z++)
и в строке 18 везде вместо str[m] str [z]
переменную m можно убрать
1
0 / 0 / 0
Регистрация: 09.04.2018
Сообщений: 8
09.04.2018, 12:03  [ТС]
Спасибо большое! Задача решилась, но я так и не понял почему. Пробовал в цикле использовать 0 - не помогало.
Видимо дело в том, что убрал переменную m
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
09.04.2018, 12:06
mickdaniels,
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
45
#include <cstddef>
#include <iostream>
#include <string>
#include <map>
 
typedef std::string::value_type TChar;
 
std::size_t Search(const std::string& s)
{
    std::size_t result = 0;
    for (const TChar& c : s)
    {
            switch (c)
            {
            case 'a':
            case 'o':
            case 'i':
            case 'u':
            case 'e':
            case 'y':
                ++result;
            }
    }
 
    return result;
}
 
int main()
{
    std::map<const std::string, std::size_t> map;
    std::string buffer; std::size_t max = 0;
 
    std::cout << "Enter max: ";
    std::cin >> max;
 
    for (std::size_t i = 0 ; map.size() < max && std::cin >> buffer; ++i)
        map[buffer] = Search(buffer);
 
    std::cout << "Result:" << std::endl;
    for (const auto& r : map)
        std::cout << r.first << ' ' << r.second
            << std::endl;
 
    return 0;
}
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
09.04.2018, 12:32
Цитата Сообщение от mickdaniels Посмотреть сообщение
Задача решилась, но я так и не понял почему
Вы точно уверены? ( я порекомендовал для начала убрать ненужный счётчик, но думаю причина не в нём). Сообщите и если ошибки остались, попробуем кое-что заменить.
0
 Аватар для Вадим Тукаев
309 / 290 / 116
Регистрация: 23.01.2018
Сообщений: 933
09.04.2018, 12:57
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <algorithm>
#include <iostream>
#include <numeric>
#include <unordered_set>
 
using namespace std;
 
int main()
{
    string v("aoiuey");
    unordered_set<char> vowels = accumulate(v.begin(), v.end(), unordered_set<char>(), [&](unordered_set<char> y, char x){y.insert(x);return y;});
    string str;
    getline(cin, str);
    int n = stoi(str);
    while (n-- > 0) {
        getline(cin, str);
        cout << count_if(str.begin(), str.end(), [&](char ch){return vowels.find(ch) != vowels.end();}) << endl;
    }
    return 0;
}
1
0 / 0 / 0
Регистрация: 09.04.2018
Сообщений: 8
10.04.2018, 16:11  [ТС]
Дело в том что я решал задачу на code abbey. У них там сразу много рандомных данных вводятся, после чего программа говорит тебе решил или нет. Если решил - больше задачу запустить не получается
0
 Аватар для Вадим Тукаев
309 / 290 / 116
Регистрация: 23.01.2018
Сообщений: 933
11.04.2018, 07:34
Я тоже решал задачи на CodeAbbey и, насколько я помню, все там прекрасно получается. Некоторые задачи на нескольких языках решал, и тоже получалось запустить. Вообще, CodeAbbey организована очень удобно - проверяется только результат, так что можно решать задачи на любом языке, хоть самом экзотическом. В чем проблема - не совсем понятно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2018, 07:34
Помогаю со студенческими работами здесь

Поиск символов в строке
Доброго времени суток! Помогите пожалуйста-Нужно подсчитать в строке количество букв «в» Строку из нескольких слов мы должны ввести...

Поиск символов в строке
Есть строка в файле txt, как организовать поиск наиболее часто повторяющегося символа в строке ?

Поиск чисел в строке символов
Прошу помочь с алгоритмом,т к сама не понимаю. Пыталась записать каждое число в отдельную строку,а потом призвоить float строке,но это...

Поиск палиндрома в строке символов
Условие задачи: 1) Задан символьный массив F(N), N&lt;=260. Найти отрезок массива максимальной длины, в котором первый символ равен...

Поиск четных символов в строке
вот мой код int main() { string a; getline(cin, a); for (int i = 0; i&lt;a.size();i++) if (a % 2 == 0) cout &lt;&lt; a; ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru