5 / 5 / 1
Регистрация: 27.09.2012
Сообщений: 65
1

Изменение отдельных символов в массиве "std::string"

27.09.2012, 13:28. Показов 1030. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрых времени суток, форумчане! Я тут решил переписать свой криптовальщик с GML на C++ и у меня возникла следующая проблема: мне нужно в массиве "std::string" изменить 1 символ, например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int main()
{
 std::string i;
 i="Hello";
 std::cout<<"Default string: "<<i<<endl;
 for (int x=0; x<i.size(); x+=1)
    {if (i[x]=='H')
        i[x]="c";
        
    }
  std::cout<<"Changed string: "<<i<<endl;
}
Если есть другое решение данной задачи то милости прошу, приведите пример!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2012, 13:28
Ответы с готовыми решениями:

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка...

std::string Зачем нужен std::string::compare, если есть перегруженный оператор ==?
Зачем нужен std::string::compare, если есть перегруженный оператор ==?

Как удалить символ '—' из std::string, используя std::string::erase?
for(auto it = words.begin(); it!=words.end();) { if( *it == '—' ) { ...

Запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’
private: std::string firstName; }; std::string ClientData::getFirstName() const{ ...

Перевод строк std::string, std::wstring в Unicode (String)
Собственно столкнулся с проблемой, как корректно перевести к примеру текст из Edit1-&gt;Text в...

4
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
27.09.2012, 13:31 2
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
   std::string i = "HelloH";
   std::cout<<"Default string: "<<i<<std::endl;
   std::replace(i.begin(), i.end(), 'H', 'c');
   std::cout<<"Changed string: "<<i<<std::endl;
}
2
5 / 5 / 1
Регистрация: 27.09.2012
Сообщений: 65
27.09.2012, 13:59  [ТС] 3
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
   std::string i = "HelloH";
   std::cout<<"Default string: "<<i<<std::endl;
   std::replace(i.begin(), i.end(), 'H', 'c');
   std::cout<<"Changed string: "<<i<<std::endl;
}
А как данный метод поведет себя в цикле? На сколько он производителен?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
27.09.2012, 14:01 4
Цитата Сообщение от Koncord Посмотреть сообщение
for (int x=0; x<i.size(); x+=1)
{if (i[x]=='H')
Для поиска существует шаблонная функция std::find

А так да, std::replace как предложил
ForEveR, здесь подходит.
1
5 / 5 / 1
Регистрация: 27.09.2012
Сообщений: 65
27.09.2012, 14:07  [ТС] 5
Дело в том, что я буду подменять ASCII символы на символы из внешней таблицы. И мне нужен более-менее производительный вариант.
0
27.09.2012, 14:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2012, 14:07
Помогаю со студенческими работами здесь

Не существует подходящей функции преобразования из std::string в std::string
#pragma once #include &lt;string&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &quot;zapisi.h&quot;...

Задать максимально разрешенное количество вводимых символов (std::string)
Привет ребята! Такая тема: Вводимая строка не должен превышать, допустим, 10 символов (строка...

Функция поиска символов в строке (std::string) с заданным шаблоном
Друзья подскажите функцию поиска символов в строке с заданным шаблоном в студии Добавлено через...

Поиск в std::vector < std::pair<UInt32, std::string> >
Подскажите пожалуйста, как осуществить поиск элемента в std::vector &lt; std::pair&lt;UInt32,...

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же...

Вывести на экран строки длиной больше 10 и меньше 50 символов из контейнера multiset<std::string, Compare>
Есть код программы, только в нём используется контейнер multimap, и строки с длиной больше 11 и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru