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

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

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

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

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

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

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

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

Перед каждым вхождением заданного символа в строку S вставить строку S0 - C++
Дан символ C и строки S, S0 . Перед каждым вхождением символа C в строку S вставить строку S0 .

Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0 - C++
Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0. Помогите пожалуйста с реализацией на Си

Дан символ С и строка S. Перед каждым вхождением C в строку S вставить строку S. Где ошибка? - C++
#include<iostream> #include<conio.h> #include<cmath> #include<string> using namespace std; int main() { string s,s0; ...

Обработать строку типа string, заменив одинаковые символы символом и их количеством - C++
Вводится строка, например AABVHHCSDDK. Если есть одинаковые последующие символы(в нашем примере это AA, HH, DD), то на экран выводится...

Если в строке нет символа +, то оставить строку без изменений, иначе каждую из цифр перед символом + заменять на * - C++
Ввести символьный массив из 12 символов. Если в тексте нет символа +, то оставить без изменений, в другом случаи каждую из цифр перед...

7
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 20:02 #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/2f59113b23a7a1d67cf6febe016cdae3
1
lese4ka
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 6
20.02.2012, 20:48  [ТС] #3
Спасибо, а не могли бы вы мне "прочитать" (пояснить) вот эти две строчки
C++
1
2
3
        it = str.find(symbol, it + ins.length() + 1)
    )
        str.insert(it + 1, ins);
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 20:53 #4
std::string::find
std::string::insert
0
soundtrack
42 / 42 / 4
Регистрация: 15.12.2011
Сообщений: 131
20.02.2012, 21:04 #5
it - счетчик цикла (текущая позиция "курсора"). В первой строчке устанавливается на новое место после вставки требуемой строчки.
Во второй строчке непосредственно вставляется строчка в установленное место. Это тело цикла for. Просто условие итерации записано несколько необычно - на три строчки 12-14, поэтому сложно разобраться.
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 21:07 #6
Цитата Сообщение от soundtrack Посмотреть сообщение
Просто условие итерации записано несколько необычно - на три строчки 12-14, поэтому сложно разобраться
Проще когда строка вылазит за 100 символов?
0
soundtrack
42 / 42 / 4
Регистрация: 15.12.2011
Сообщений: 131
20.02.2012, 21:11 #7
да не, все ОК. Просто непривычно)
0
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
21.02.2012, 17:48 #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;
}
0
21.02.2012, 17:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2012, 17:48
Привет! Вот еще темы с ответами:

Даны строка S, символ C и строка S0. Необходимо после каждого вхождения символа C в строку S вставить строку S0 - C++
Есть код... string s, s0; char c; cout &lt;&lt; &quot;Введите строку s, s0 и символ c: &quot;; getline(cin, s); ...

Строку разделить одним символом "точка" - C++
Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова, разделенные...

Либо удваивая одиночные, либо заменяя сдвоенные одним символом, привести строку к заданному виду - C++
Помогите решить эту задачу, я написал решение, но оно получилось огромным (73 строчки), непонятным и страшным. Это пятая задача из...

Вставить подстроку в строку - C++
Дано строка и подстрока. Вставить указанный подстроку в начальную строку через 2, 4, 8 ... символов.


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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