Tag: 案例转换

C / C ++ UTF-8大/小写转换

问题:有一种方法可以在一台机器上运行相应的测试用例而在另一台机器上运行失败(详情如下)。 我认为代码有问题,导致它在一台机器上偶然工作。 不幸的是我找不到问题。 请注意,std :: string和utf-8编码的使用是我没有实际影响的要求。 使用C ++方法会很好,但不幸的是我找不到任何东西。 因此使用C函数。 方法: std::string firstCharToUpperUtf8(const string& orig) { std::string retVal; retVal.reserve(orig.size()); std::mbstate_t state = std::mbstate_t(); char buf[MB_CUR_MAX + 1]; size_t i = 0; if (orig.size() > 0) { if (orig[i] > 0) { retVal += toupper(orig[i]); ++i; } else { wchar_t wChar; int len = mbrtowc(&wChar, &orig[i], MB_CUR_MAX, […]