Есть ли версия 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 #.

0 ответов

Другие вопросы по тегам