Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
IsoOmena
1

Замена символа на строку.

21.02.2011, 11:43. Просмотров 720. Ответов 2
Метки нет (Все метки)

Задача заключается в следующем: необходимо заменить "ХХХ", независимо от колличества Х-ов, на "Siberia".
Пробовала делать так:

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
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str ("Cogratulations Mrs.<name>, you and Mr.<name> are the lucky recipients of a trip for two to XXXXXX. Your trip to XXX is already scheduled");
 
size_t found;
 
found=str.find_first_of("X");
  while (found!=string::npos)
  {
         char c[8] = "Siberia";
        str[found]= *c;
 
    found = str.find_first_of("X",found+1);
   
  }
 
cout << str << endl;
 
system("PAUSE");
return 0;
}
но в итоге "ХХХ" заменяются только на первую букву, т.е. на "S", а как сделать так, чтобы заменялось на строку? Может, пробовать через другой оператор?

Заранее спасибо.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2011, 11:43
Ответы с готовыми решениями:

Замена символа в строке на число соответствующему номеру по порядку вхождения этого символа в строку
В заданной строке заменить каждый символ «*» числом, соответствующим номеру по порядку вхождения...

Замена символа пробела на заданную строку
здрасти, со строками у меня как то плохо все, как заменить все символы пробелов на строку &quot; !##! ...

Создать строку: с начало три символа первой строки, потом эти же три символа в обратном порядке
Помогите пожалуйста! Ввести строку символов. Создать новую строку следующим образом: с начало три...

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

2
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
21.02.2011, 11:52 2
Вам необходимо "расширить\ужать" строчку свою. Довольно логичный вариант - взять часть строчки ДО вашего ХХХ, скопировать в новую, прибавить вашу Siberia, Затем взять в изначальной сточке 2ю часть ПОСЛЕ ХХХ, и прибавить к результирующей строчке. Используйте substr()
0
1994 / 1594 / 488
Регистрация: 31.05.2009
Сообщений: 2,982
21.02.2011, 12:17 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string str = "Cogratulations Mrs.<name>, you and Mr.<name> are the lucky recipients"
                 " of a trip for two to XXXXXX. Your trip to XXX is already scheduled";
 
 
    size_t foundf, foundl;
 
    while( (foundf = str.find_first_of("X")) != string::npos)
    {
        foundl = str.find_first_not_of("X", foundf);
        str.replace(foundf, foundl - foundf, "Siberia");
    }
 
    cout << str << endl;
 
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2011, 12:17

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Определить последнее вхождение символа “р” в строке и вывести строку, начиная с первого символа и до последнего “р” в строке
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить последнее вхождение символа...

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

Скопировать строку st1 в строку st2 поместив вместо букв десятичный код символа
Скопировать строку st1 в строку st2(состоит из латинских букв и цифр) поместив вместо букв...

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


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

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

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