Есть ли версия strrchr и wcsrchr без учета регистра?(C ++)
Я пытаюсь проверить, если
variable
заканчивается
expression
.
Мой текущий код таков:
(strchr(variable.data(), tolower(expression[0])) || strchr(variable.data(), toupper(expression[0]))) && _stricmp((strrchr(variable.data(), tolower(expression[0]))? strrchr(variable.data(), tolower(expression[0])) : strrchr(variable.data(), toupper(expression[0]))), expression.data()) == 0
Оно работает. Но с нечувствительной к регистру версией
strrchr
а также
strchr
Я могу это упростить. Мне также нужны нечувствительные к регистру версии и
wcsrchr
для строк UTF16:
(wcschr(variable.data(), tolower(expression[0])) || wcschr(variable.data(), toupper(expression[0]))) && _wcsicmp((wcsrchr(variable.data(), tolower(expression[0])) ? wcsrchr(variable.data(), tolower(expression[0])) : wcsrchr(variable.data(), toupper(expression[0]))), expression.data()) == 0
Я открыт для других упрощений.
Я не могу писать дополнительные методы, потому что основная программа - это vs-расширение, написанное на C #.