Форум программистов, компьютерный форум, киберфорум
Наши страницы

Задача на строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Для автосалона составить каталог поддержанных автомобилей, http://www.cyberforum.ru/cpp-beginners/thread1048947.html
Извините, просто не успеваю к зачету))) Нужен код программы на C++ Хотя бы похожая программа Вот условие Для автосалона составить каталог поддержанных автомобилей, который должен содержать: ...
C++ Ошибка в функции! Господа знатоки, открытое шифрование Эль-Гамаля, функция дешифрования работает не правильно, например я шифрую текст: завтра в 8 часов , задаю параметры p,g,x , идет шифрование , зашифрованное... http://www.cyberforum.ru/cpp-beginners/thread1048938.html
C++ Подключил мультиметр к ПК, нужно считать показатели в с++.
Доброго времени суток, уважаемые форумчане. Подскажите пожалуйста: есть мультиметр APPA 190n, я подключил его к ПК, и теперь мне нужно считать показатели в с++. То есть мультиметр посылает (мы...
Вычислительные процессы, линейные и ветвящиеся C++
Написать коды 1) Линейного процесса 2) Ветвящегося процесса простейшие, вида, 7+4=11
C++ В данном тексте подсчитать все вхождения подстроки «abc» и удалить их http://www.cyberforum.ru/cpp-beginners/thread1048923.html
Задача программы такая: "В данном тексте подсчитать все вхождения подстроки «abc» и удалить их. Вывести два варианта результата: с пробелами вместо букв подстроки (длина текста остаётся такой же) и...
C++ производные классы Задание: Разработайте программу на языке С++, использующую наследование. Вариант 18. Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и... подробнее

Показать сообщение отдельно
max777alex
44 / 44 / 3
Регистрация: 01.02.2012
Сообщений: 822
19.12.2013, 21:48
Цитата Сообщение от Akilda Посмотреть сообщение
Простите, а можно с объяснением))

Добавлено через 48 секунд
max777alex, а можно с объяснением) пожалуйста
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
46
47
48
49
50
51
52
53
54
55
56
57
#include <cstdio>
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
 
void toLowerCase(string &s)  // перевод строки в нижний регистр, строка передается по ссылке
{
    for(int i = 0; i < s.length(); ++i)
    {
        if(s[i] >= 'A' && s[i] <= 'Z') // если i-й символ строки - большая буква, то
            s[i] = char(s[i] - 'A' + 'a'); // сделаем его маленькой буквой
    }
}
 
int search(string s, string sub, int k, int b)
{
    int n = s.length(); // длина строки s
    int m = sub.length(); // длина строки sub
 
    if(b) 
    {
        toLowerCase(s); // переводим s, sub в нижний регистр
        toLowerCase(sub);
    }
 
    int res = -1; // текущий ответ 
 
    for(int i = 0; i < k; ++i) // сделаем k итераций (т.к. нужно k-е вхождение)
    {
        res = s.find(sub, res + 1); // ищем первое вхождение строки sub начиная с позиции res + 1
 
        if(res == -1) // если строка sub дальше не встречается, т.е. res == -1
            break; // выходим из цикла
    }
 
    return res;
}
 
int main()
{
    string s, sub;
    getline(cin, s); // читаем строку s
    getline(cin, sub); // читаем строку sub
 
    int k; 
    cin >> k; // читаем число k
 
    int b;
    cin >> b; // читаем число b, если b = 1, то игнорируем регистр букв
 
    int res = search(s, sub, k, b); 
 
    cout << res << endl;
 
    return 0;
}
подробнее про функцию find можно почитать вот тут
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru