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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Akilda
1 / 1 / 0
Регистрация: 19.12.2013
Сообщений: 27
#1

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

19.12.2013, 21:08. Просмотров 266. Ответов 3
Метки нет (Все метки)

Здравствуйте. Мне на завтра несколько задач нужно дорешать, решила сама уже на нахождение количества разделителей в строке и на матрицы, осталась еще одна, завтра последний день сдачи((( сама признаюсь честно не смогу решить эту задачу. Помогите пожалуйста Задача на строки
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2013, 21:08     Задача на строки
Посмотрите здесь:

Задача на строки - C++
Даны натуральное число n, символы s1,...,sn. Известно, что среди данных символов есть хотя бы один, отличный от пробела. Требуется...

задача на строки.с++ - C++
подсчитайте количество шипящих букв в слове.

Задача на строки - C++
Здравствуйте можете пожалуйста помочь с решением задачи, а то в строках не слишком силён. Дано заведомо правильное арифметическое...

Задача на строки ! - C++
Здрасте помогите с задачей !! В строке, состоящей из групп нулей и единиц, найти и вывести на экран группы с четным количеством...

Задача на строки! - C++
Такая вот задачка: Ввести строку символов и подсчитать количество повторений слов одинаковой длины. Изъять все слова заданной пользователем...

Задача на строки - C++
Подскажите, где можно посмотреть пример решения такой задачи, или хотя бы что-то из этого: Даны строки S1 и S2. Сформировать строку S...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
max777alex
44 / 44 / 3
Регистрация: 01.02.2012
Сообщений: 822
19.12.2013, 21:28     Задача на строки #2
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')
            s[i] = char(s[i] - 'A' + 'a');
    }
}
 
int search(string s, string sub, int k, int b)
{
    int n = s.length();
    int m = sub.length();
 
    if(b)
    {
        toLowerCase(s);
        toLowerCase(sub);
    }
 
    int res = -1;
 
    for(int i = 0; i < k; ++i)
    {
        res = s.find(sub, res + 1);
 
        if(res == -1)
            break;
    }
 
    return res;
}
 
int main()
{
    string s, sub;
    getline(cin, s);
    getline(cin, sub);
 
    int k;
    cin >> k;
 
    int b;
    cin >> b;
 
    int res = search(s, sub, k, b);
 
    cout << res << endl;
 
    return 0;
}
Akilda
1 / 1 / 0
Регистрация: 19.12.2013
Сообщений: 27
19.12.2013, 21:38  [ТС]     Задача на строки #3
Простите, а можно с объяснением))

Добавлено через 48 секунд
max777alex, а можно с объяснением) пожалуйста
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2013, 21:48     Задача на строки
Еще ссылки по теме:

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

задача на строки - C++
помогите пожалуйста, хотя бы на словах подскажите алгорит к след.задаче Ввести n слов в консоли. Найти слово ,в котором число различных...

Задача на строки - C++
Задали на лабу в универе задачу: Словом в строке считается последовательность букв латинского алфавита, остальные символы...

задача на строки - C++
собственно задача. Совсем недавно Вася научился печатать на клавиатуре и выходить в интернет. Он сразу же зашел в чат и решил...

Задача на строки - C++
Суть задачи такая. Есть строка и есть подстрока, найти все вхождение строки в подстроку и отделить пробелами. При этом желательно работать...

Задача на строки - C++
Я не прошу написать код, прошу просто подсказать, как осуществить такую задачу. Есть текст, текст состоит из маленьких букв, знаков *+-...


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

Или воспользуйтесь поиском по форуму:
max777alex
44 / 44 / 3
Регистрация: 01.02.2012
Сообщений: 822
19.12.2013, 21:48     Задача на строки #4
Цитата Сообщение от 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 можно почитать вот тут
Yandex
Объявления
19.12.2013, 21:48     Задача на строки
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru