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

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

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

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

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

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

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

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

задача на Строки - C++
Здравствуйте. прошу помочь мне с написанием вот такой вот программы... Даны два слова: U и V, где U - напечатанное нами неправильное...

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

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

Задача на строки ( - C++
Привет всем) Не могу решить задачу: "Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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;
}
1
Akilda
1 / 1 / 0
Регистрация: 19.12.2013
Сообщений: 27
19.12.2013, 21:38  [ТС] #3
Простите, а можно с объяснением))

Добавлено через 48 секунд
max777alex, а можно с объяснением) пожалуйста
0
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 можно почитать вот тут
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2013, 21:48
Привет! Вот еще темы с ответами:

Задача на строки(С/С++) - C++
Пользователь вводит отдельно строку и символ, необходимо показать на экран номер только последнего совпадения (нумерация с единицы). ...

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

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

задача на Строки - C++
Написать программу которая удаляет из введенной с клавиатуры строки начальные пробелы


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.12.2013, 21:48
Ответ Создать тему
Опции темы

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