ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Чёзабред? Сравнение строк (https://forum.antichat.xyz/showthread.php?t=1468915)

Ya Zaregalsya 22.02.2023 14:36

Совершенно разные строки дают ложно положительный результат на операторе сравнения.

C++:





Код:

void
Notifications
::
addWantedData
(
std
::
string name
,
int
wantedLevel
)
{
for
(
int
i
=
0
;
i

getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"[Ошибка]. Это имя уже есть в базе. %s == %s"
,
Notifications
::
wantedData
[
i
]
.
name
.
data
(
)
,
name
.
data
(
)
)
;
//Выводит разные имена, но всё равно сработало.
return
;
}
}
Notifications
::
WantedData
data
(
name
,
wantedLevel
)
;
Notifications
::
wantedData
.
push_back
(
data
)
;
Notifications
::
saveWantedData
(
)
;
}


RedHolms 22.02.2023 14:38

попробуй c-шное сравнение

C++:





Код:

if
(
strcmp
(
str1
.
c_str
(
)
,
str2
.
c_str
(
)
)
==
0
)
{
// equal
}


Ya Zaregalsya 22.02.2023 14:42

Цитата:

Сообщение от RedHolms

попробуй c-шное сравнение

C++:





Код:

if
(
strcmp
(
str1
.
c_str
(
)
,
str2
.
c_str
(
)
)
==
0
)
{
// equal
}



Помогло. Интересно в чём причина.

0Z0SK0 22.02.2023 16:53

wantedData какой тип имеет?

Ya Zaregalsya 22.02.2023 17:57

Цитата:

Сообщение от 0Z0SK0

wantedData какой тип имеет?

Он имеет тип WantedData, это структура с полями std::string name и int wantedLevel.


Время: 19:12