Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

replace

16K
21 августа 2006 года
LoveLinux
13 / / 15.06.2006
Задача:
Нужно все символы "з" в строке str заменить на "z".
Код:
#include <iostream.h>
#include <string.h>
using namespace std;
string str;
int main()
{
int i=0;
cin>>str;
i = str.find('з');
str.replace(i,1,"z");
cout<<str;
return 0;
}

Далее вводил
Цитата:
здорово


На что был ответ

Цитата:
zдорово


Тогда я попробывал

Код:
#include <iostream.h>
#include <string.h>
using namespace std;
string str;
int main()
{
int i=0;
cin>>str;
i = str.find('з');
str.replace(i-1,1,"z");
cout<<str;
return 0;
}

Получалось
Цитата:
z дорово


[SIZE="3"]Как избавится от пробела???[/SIZE]

547
22 августа 2006 года
Hydra
488 / / 20.06.2006
А чем первый вариант тебе не понравился?

P.S. Не все буквы заменять будет - нужен цикл. Попробуй ввести 'зараза'
9.5K
22 августа 2006 года
ROLpogo
80 / / 22.08.2006
Код:
#include <iostream>
#include <string>
#include <conio.h>

using namespace std;

void main (void)
{
  string str;
  cin>>str;
  basic_string <char>::size_type i;  
  while((i=str.find("з"))!=string::npos)
    str.replace(i,1,"z");
  cout<<str;
  _getch();
}
16K
22 августа 2006 года
LoveLinux
13 / / 15.06.2006
[QUOTE=ROLpogo]
Код:
#include <iostream>
#include <string>
#include <conio.h>

using namespace std;

void main (void)
{
  string str;
  cin>>str;
  basic_string <char>::size_type i;  
  while((i=str.find("з"))!=string::npos)
    str.replace(i,1,"z");
  cout<<str;
  _getch();
}
[/QUOTE]
Исходные даные:
Цитата:
здорово


Результат:

Цитата:
здорово


P.S.Компилятор Dev-C++

16K
22 августа 2006 года
LoveLinux
13 / / 15.06.2006
[QUOTE=Hydra]А чем первый вариант тебе не понравился?

P.S. Не все буквы заменять будет - нужен цикл. Попробуй ввести 'зараза'[/QUOTE]
В сообщении не видно, но там перед zдоровя появляется пробел!
9.5K
23 августа 2006 года
ROLpogo
80 / / 22.08.2006
Я тестировал на замене английских символов, русские не воспринимались. Но увидев что у тебя в примере русские символы были найдены, подумал, что у тебя компилятор позволяет.
16K
23 августа 2006 года
LoveLinux
13 / / 15.06.2006
Мне тут прийшло в голову а ведь на Паскале ето реализовать намного проще!
Так почему же я пишу на С++?
Да чуть не забыл всем большое спасибо!
3
23 августа 2006 года
Green
4.8K / / 20.01.2000
Может, потому, что не умеешь использовать С++ ?
Чем не подходит replace ?
14K
24 августа 2006 года
Rockie
6 / / 21.11.2005
Код:
#include<iostream>
#include<string>

using namespace std;

void main(){
string str = "nu C++ i zaraza..";

replace(str.begin(),str.end(), 'z' , 'Z');

cout<<str;

cin.get();    // press enter
}

а если проблемы с русскими буквами то imho это не раз обсуждалось и стоит юзать поиск
16K
26 августа 2006 года
LoveLinux
13 / / 15.06.2006
[QUOTE=Green]Может, потому, что не умеешь использовать С++ ?
Чем не подходит basic_string::replace ?[/QUOTE]
Возможно...:rolleyes:
16K
26 августа 2006 года
LoveLinux
13 / / 15.06.2006
[QUOTE=Rockie]
Код:
#include<iostream>
#include<string>

using namespace std;

void main(){
string str = "nu C++ i zaraza..";

replace(str.begin(),str.end(), 'z' , 'Z');

cout<<str;

cin.get();    // press enter
}

а если проблемы с русскими буквами то imho это не раз обсуждалось и стоит юзать поиск[/QUOTE]

[SIZE="5"]Большое спасибо!!![/SIZE]
Иду переписывать програму на С++...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог