Я пытаюсь сравнить некоторые строки, которые похожи, например:
Сравнение строк "H2Oリテイリング"
и "H2Oリテイリング"
должно вернуть true
Сравнение строк "H2Oリテイリング"
и "H2Oリテイリング"
должно вернуть true
Я получу эти строки массивом TCHAR
.Есть ли способ сравнить строки этого типа?
Я пробовал сравнивать, используя символ за символом, но это не сработало.
#define MAX_STRING 256
bool IsStringsEqual(TCHAR* str1, TCHAR* str2)
{
if (_tcscmp(str1, str2) == 0)
return true;
else
return false;
}
int _tmain(int argc, _TCHAR* argv[])
{
TCHAR original [MAX_STRING];
ZeroMemory(original, sizeof(TCHAR) * MAX_STRING);
_stprintf_s(original, TEXT("%s"), _T("H2Oリテイリング㈱"));
TCHAR str1[MAX_STRING];
ZeroMemory(str1, sizeof(TCHAR) * MAX_STRING);
_stprintf_s(str1, TEXT("%s"), _T("H2Oリテイリング㈱"));
if (IsStringsEqual(original,str1))
wcout << endl << " Equal";
TCHAR str2[MAX_STRING];
ZeroMemory(str2, sizeof(TCHAR) * MAX_STRING);
_stprintf_s(str2, TEXT("%s"), _T("H2Oリテイリング㈱"));
if (IsStringsEqual(original, str2))
wcout << endl << " Equal";
TCHAR str3[MAX_STRING];
ZeroMemory(str3, sizeof(TCHAR) * MAX_STRING);
_stprintf_s(str3, TEXT("%s"), _T("H2Oリテイリング㈱"));
if (IsStringsEqual(original, str3))
wcout <<endl<< " Equal";
return 0;
}
Я ожидаю, что он напечатает Equalдля всех вышеперечисленных сравнений.