Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Для автосалона составить каталог поддержанных автомобилей, http://www.cyberforum.ru/cpp-beginners/thread1048947.html
Извините, просто не успеваю к зачету))) Нужен код программы на C++ Хотя бы похожая программа Вот условие Для автосалона составить каталог поддержанных автомобилей, который должен содержать: 1) марка авто 2) адрес предыдущего владельца 3) пробег
C++ Ошибка в функции! Господа знатоки, открытое шифрование Эль-Гамаля, функция дешифрования работает не правильно, например я шифрую текст: завтра в 8 часов , задаю параметры p,g,x , идет шифрование , зашифрованное сообщение получается например (7807 29351 1613 15576 9709 12646 20899 28406 2529 1648 31851 26996 16811 22620 6035 11610 3487 6188 28203 2180 15971 12776 16771 20323 25461 5380 6561 28225 12387 33270... http://www.cyberforum.ru/cpp-beginners/thread1048938.html
C++ Подключил мультиметр к ПК, нужно считать показатели в с++.
Доброго времени суток, уважаемые форумчане. Подскажите пожалуйста: есть мультиметр APPA 190n, я подключил его к ПК, и теперь мне нужно считать показатели в с++. То есть мультиметр посылает (мы считываем) знаки (16) в с++, мы обрабатываем его по следующим правилам: -каждая группа знаков (по два знака, первые 6) делится на группы всего групп три, каждая со своим условием, пара принадлежит ко...
Вычислительные процессы, линейные и ветвящиеся C++
Написать коды 1) Линейного процесса 2) Ветвящегося процесса простейшие, вида, 7+4=11
C++ В данном тексте подсчитать все вхождения подстроки «abc» и удалить их http://www.cyberforum.ru/cpp-beginners/thread1048923.html
Задача программы такая: "В данном тексте подсчитать все вхождения подстроки «abc» и удалить их. Вывести два варианта результата: с пробелами вместо букв подстроки (длина текста остаётся такой же) и со сдвигом текста при удалении." Нашел только кусочек кода из Паскаля Var s:string; Begin write('Введите строку: ');readln(s); While Pos('от',s)<>0 do Delete(s,Pos('от',s),2); ...
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 можно почитать вот тут
 
Текущее время: 21:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru