Показать сообщение отдельно

  #2  
Старый 12.07.2022, 01:31
Dark_Knight
Флудер
Регистрация: 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

 
Ответить с цитированием