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

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

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

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

Заменить в строке все вхождения подстроки 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.
а если не сложно то можно функцию

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
1867 / 1483 / 751
Регистрация: 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
1867 / 1483 / 751
Регистрация: 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

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

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

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


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

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

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