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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 44, средняя оценка - 4.84
lese4ka
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 6
#1

вставить строку педе символом C++ - C++

20.02.2012, 19:42. Просмотров 5831. Ответов 7
Метки нет (Все метки)

Напишите, пожалуйста, как решается такая задачка:
Дан символ C и строки S, S0. Перед каждым вхождением символа C в строку S вставить S0.

Просто когда я сама я её писала, у меня почему-то вышла ошибка о неверном преобразовании типа char, значит я делала что-то неправильно!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2012, 19:42     вставить строку педе символом C++
Посмотрите здесь:

C++ Вставить символ рядом с указанным символом в строку
Просто, как вставить строку? C++
C++ Вставить в матрицу строку из нулей
C++ Дан символ С и строка S. Перед каждым вхождением C в строку S вставить строку S. Где ошибка?
C++ Если в строке нет символа +, то оставить строку без изменений, иначе каждую из цифр перед символом + заменять на *
C++ Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0
Даны строка S, символ C и строка S0. Необходимо после каждого вхождения символа C в строку S вставить строку S0 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2537 / 1302 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 20:02     вставить строку педе символом C++ #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <string>
#include <iostream>
 
int main()
{
    std::string str         = "abcabcabca";
    const std::string ins   = "tata";
    const char symbol       = 'a';
 
    for
    (
        auto it = str.find(symbol);
        it != std::string::npos;
        it = str.find(symbol, it + ins.length() + 1)
    )
        str.insert(it + 1, ins);
 
    std::cout << str << std::endl;
    
    return 0;
}
http://liveworkspace.org/code/2f5911...f6febe016cdae3
lese4ka
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 6
20.02.2012, 20:48  [ТС]     вставить строку педе символом C++ #3
Спасибо, а не могли бы вы мне "прочитать" (пояснить) вот эти две строчки
C++
1
2
3
        it = str.find(symbol, it + ins.length() + 1)
    )
        str.insert(it + 1, ins);
soon
2537 / 1302 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 20:53     вставить строку педе символом C++ #4
std::string::find
std::string::insert
soundtrack
42 / 42 / 4
Регистрация: 15.12.2011
Сообщений: 131
20.02.2012, 21:04     вставить строку педе символом C++ #5
it - счетчик цикла (текущая позиция "курсора"). В первой строчке устанавливается на новое место после вставки требуемой строчки.
Во второй строчке непосредственно вставляется строчка в установленное место. Это тело цикла for. Просто условие итерации записано несколько необычно - на три строчки 12-14, поэтому сложно разобраться.
soon
2537 / 1302 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 21:07     вставить строку педе символом C++ #6
Цитата Сообщение от soundtrack Посмотреть сообщение
Просто условие итерации записано несколько необычно - на три строчки 12-14, поэтому сложно разобраться
Проще когда строка вылазит за 100 символов?
soundtrack
42 / 42 / 4
Регистрация: 15.12.2011
Сообщений: 131
20.02.2012, 21:11     вставить строку педе символом C++ #7
да не, все ОК. Просто непривычно)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2012, 17:48     вставить строку педе символом C++
Еще ссылки по теме:

C++ Строку разделить одним символом "точка"
Вставить подстроку в строку C++
C++ Обработать строку типа string, заменив одинаковые символы символом и их количеством
C++ Либо удваивая одиночные, либо заменяя сдвоенные одним символом, привести строку к заданному виду
Перед каждым вхождением заданного символа в строку S вставить строку S0 C++

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

Или воспользуйтесь поиском по форуму:
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
21.02.2012, 17:48     вставить строку педе символом C++ #8
строки в С стиле
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
#include <iostream>
#include <cstring>
 
int main()
{
        const int size = 100;
        char s[size];
        char *ptr;
        char s0[] = "TEST";
        char c;
 
        std::cout << "Введите стрку: ";
        std::cin.getline(s,size);
 
        std::cout << "Введите c: ";
        std::cin >> c;
 
        ptr = strchr(s,c);
 
        while(ptr != NULL)
        {
                int index = ptr - s;
                char *tempStr = new char[strlen(ptr)+1];
                strcpy(tempStr,ptr);
                strcpy(s+index,s0);
                strcat(s,tempStr);
                ptr = strchr(s+(index+strlen(s0)+1),c);
                delete[] tempStr;
        }
 
        std::cout << s << std::endl;
 
        return 0;
}
Yandex
Объявления
21.02.2012, 17:48     вставить строку педе символом C++
Ответ Создать тему
Опции темы

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