Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не могу вставить функцию "replace" / 11 сообщений из 11, страница 1 из 1
01.12.2015, 21:38
    #39117850
viktoryeah
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу вставить функцию "replace"
Я в С++ очень недавно, и вот задали мне домашку в универе, саму домашку решать вас не прошу, но по мере создания программы, понял, что не знаю как заменять символы в строке.
К примеру, мне нужно сделать прогу, в которой пользователь будет вводить строку, и ему выдаст ту же строку, в которой все 7ки заменены на "rwx".
Вот что у меня получилось :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
/*вот набросок. суть не в том, что я буду делать дальше, а в том, что не могу понять, как именно ввести функцию "replace"
Было бы еще неплохо сделать чтоб размер вводимой строки был максимум 9 символов. */

#include <iostream>
#include <string>
int main ()
{
  std::string a;
  std::cout<<"введи строку : \n";
  std::cin>>a;
  std::replace(a.begin(),a.end(),'7',"rwx");
  std::cout<<a;
  return 0;
}
...
Рейтинг: 0 / 0
01.12.2015, 21:55
    #39117860
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу вставить функцию "replace"
Как-то так: http://en.cppreference.com/w/cpp/string/basic_string/replace
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.12.2015, 22:09
    #39117869
viktoryeah
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу вставить функцию "replace"
Dimitry Sibiryakov,

я уж читал, да не понимаю как вставить,
Код: plaintext
1.
2.
3.
/*когда пишу*/   std::replace(str.begin(),str.end(),'7',"rwx"); - //[Error] 'replace' is not a member of 'std'

/*когда*/  a & replace(str.begin(),str.end(),'7',"rwx"); - //[Error] 'replace' was not declared in this scope
...
Рейтинг: 0 / 0
01.12.2015, 22:33
    #39117878
viktoryeah
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу вставить функцию "replace"
Dimitry Sibiryakov,

понял, что писать надо через a.replace()
но, теперь 7ка не меняется на "rwx"
...
Рейтинг: 0 / 0
01.12.2015, 22:36
    #39117880
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу вставить функцию "replace"
viktoryeahно, теперь 7ка не меняется на "rwx"
А должна? Среди шести вариантов использования этой функции какой именно ты имел на мысли,
когда писал такой бред?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.12.2015, 22:43
    #39117881
viktoryeah
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу вставить функцию "replace"
Dimitry Sibiryakov,

на каком-то форуме нашел. и не понимаю КАК сделать правильно
...
Рейтинг: 0 / 0
01.12.2015, 22:49
    #39117884
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу вставить функцию "replace"
viktoryeah,

С помощью find() найти позицию искомой строки.
Передать ее в replace() для замены (replace не ищет, ему нужно указать конкретную позицию, ранее найденную).
...
Рейтинг: 0 / 0
01.12.2015, 22:52
    #39117887
viktoryeah
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу вставить функцию "replace"
Anatoly Moskovsky,

cпасибо, буду пробовать)
...
Рейтинг: 0 / 0
01.12.2015, 23:02
    #39117892
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу вставить функцию "replace"
viktoryeahна каком-то форуме нашел. и не понимаю КАК сделать правильно
Приведённую мною ссылку читать пробовал?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.12.2015, 23:08
    #39117894
viktoryeah
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу вставить функцию "replace"
Dimitry Sibiryakov,

уже понял, спасибо.
до предыдущего комента не понимал что нужно обязательно писать позицию.
...
Рейтинг: 0 / 0
02.12.2015, 13:57
    #39118379
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу вставить функцию "replace"
Без изменения исходной строки
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#include <iostream>
#include <string>
int main ()
{
  std::string a;
  std::cout<<"введи строку : \n";
  std::cin>>a;
  for(string::iterator i=a.begin();i!=a.end();i++){
    std::cout<<*i!='7':"rwx":*i;
  }
  return 0;
}
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не могу вставить функцию "replace" / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]