Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
slavnayanata
0 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 6
#1

Заменить в строке все вхождения подстроки str1 на подстроку str2 - C++

29.03.2011, 11:16. Просмотров 952. Ответов 7
Метки нет (Все метки)

заменить в строке все вхождения подстроки str1 на подстроку str2
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2011, 11:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Заменить в строке все вхождения подстроки str1 на подстроку str2 (C++):

Заменить в строке все вхождения подстроки str1 на подстроку str2
Заменить в строке все вхождения подстроки strl на подстроку str2.

Заменить в строке все вхождения подстроки str1 на подстроку str2
заменить в строке все вхождения подстроки str1 на подстроку str2

Заменить все вхождения str1 на str2 (str1 вводится из файла, а str2 - с клавиатуры)
заменить все вхождения подстроки str1 на подстроку str2; строка str1 вводится...

STL. Заменить в строке S все вхождения подстроки S1 на подстроку S2
Даны строки S, S1 и S2 вводимые с клавиатуры. Требуется заменить в строке S...

Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2.
а если не сложно то можно функцию

Функцию, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления str2 в str1
Напишите функцию rightposition, которая получает два параметра str1 и str2 типа...

7
IrineK
Заблокирован
29.03.2011, 11:51 #2
Библиотечные функции можно использовать или нет?
0
slavnayanata
0 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 6
29.03.2011, 13:02  [ТС] #3
в условии ничего не сказано, наверно можно
0
igorrr37
1863 / 1481 / 749
Регистрация: 21.12.2010
Сообщений: 2,473
Записей в блоге: 11
29.03.2011, 13:27 #4
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
 
int main(){
    std::string text="1234 1267812890", oldStr="12", newStr="BCD";
    std::string::size_type ind=0;
    while((ind=text.find(oldStr, ind))!=std::string::npos){
        text.replace(ind, oldStr.size(), newStr);
    }
    std::cout<<text<<"\n";
}
0
slavnayanata
0 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 6
29.03.2011, 14:22  [ТС] #5
спасибо огромное!
0
kreedz
6 / 6 / 2
Регистрация: 29.11.2009
Сообщений: 100
03.04.2011, 15:38 #6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

как то же самое сделать, но уже с использованием указателей?
Вот что я сделал:
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
#include <iostream>
 
using namespace std;
 
int main() {
    const int N = 10, N_ = 255;
    cout << "Ввод искомого слова:\n";
 
    char *word = new char [N], *word2 = new char [N];
    cin.getline(word, N);
 
    cout << "\nЗаменить словом:\n";
    cin.getline(word2, N);
 
    cout << "\nВвод текста:\n";
    char *text = new char [N_]
    cin.getline(text, N_);
 
    while (char *p = strstr(text, word))
        while (*p++ = *word2++);
 
 
    cout << endl << text;
    return 0;
}
На ввод:
Ввод искомого слова:
qwerty

Заменить словом:
keyboard

Ввод текста:
mouse qwerty flatron
На выводе:
mouse keyboard
0
igorrr37
1863 / 1481 / 749
Регистрация: 21.12.2010
Сообщений: 2,473
Записей в блоге: 11
03.04.2011, 17:32 #7
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
#include<string.h>
 
int main(){
    char* text="1234 1267812890", text1[BUFSIZ], *oldStr="12", *newStr="BCD", *p=text, *p1=text1, *p2=text;
    while(p2=strstr(p2, oldStr)){
        for(; p!=p2; ++p, ++p1){
            *p1=*p;
        }
        p1=strncpy(p1, newStr, strlen(newStr))+strlen(newStr);
        p2=p+=strlen(oldStr);
    }
    for(; *p1=*p; ++p, ++p1);
    printf("text1= %s", text1);
}
1
kreedz
6 / 6 / 2
Регистрация: 29.11.2009
Сообщений: 100
03.04.2011, 17:53 #8
igorrr37,
спасибо, пойду разбираться
0
03.04.2011, 17:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2011, 17:53
Привет! Вот еще темы с решениями:

Заменить в строке все вхождения одной подстроки на другую
помогите пожалуйста с решением задачи! замените в строке все вхождения одной...

Найти в исходной строке все вхождения заданной подстроки и заменить их на другую строку
Найти в исходной строке все вхождения (но не более девяти) заданной подстроки и...

Заменить первые вхождения заданной подстроки S1 на заданную подстроку S2
Помогите решить задачку пож. 1. Заменить первые вхождения заданной подстроки...

Функция определяющая наличие символов строки str2 в строке str1
Написать и протестировать функцию STRS(str1, str2), которая определяет,...


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

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

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