
12.07.2022, 01:31
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Написать правильный код) Ты работаешь с байтами же и хочешь сравнить двухбайтное значение которое идет в case с однобайтным которое идет свитч. Как вариант, можно сделать вектор пару(std:  air) с где в первом елементе будут искомые символы, а во втором которые будут заменены на первые. Проходится через фор, ищем через std::string::find и заменяем через std::string::replace. Код на полную правильную работоспособность не претендует.
C++:
[CODE]
#include
#include
#include
#include
int
main
(
)
{
std
::
vector
>
vec
=
{
{
"ch"
,
"ч"
}
,
{
"a"
,
"а"
}
,
{
"p"
,
"п"
}
,
{
"o"
,
"о"
}
,
}
;
std
::
string text
=
"chapo"
;
for
(
auto
it
:
vec
)
{
size_t f
=
std
::
string
::
npos
;
do
{
size_t f
=
text
.
find
(
it
.
first
)
;
if
(
f
!=
std
::
string
::
npos
)
text
=
text
.
replace
(
f
,
it
.
first
.
length
(
)
,
it
.
second
)
;
}
while
(
f
!=
std
::
string
::
npos
)
;
}
std
::
cout
|
|
|