如何跨平台比较单个多字节字符常量?

How do I compare single multibyte character constants cross-platform?

因为我正在编写一个跨平台应用程序,所以我希望我的代码可以在两个平台上运行。

在Windows中,我使用这段代码来比较2个单个字符。

for( int i = 0;  i < str.size();  i++ )
    if( str.substr( i, 1 ) == std::string( "¶" ) )
        printf( "Found!\n" );

现在,在Linux中找不到该字符。当我把子串改成2的长度时发现。

for( int i = 0;  i < str.size();  i++ )
    if( str.substr( i, 2 ) == std::string( "¶" ) )
        printf( "Found!\n" );

这个字符比较码如何转换为跨平台?

使用字符串str.compare()size()解决:

std::string str = "Some string ¶ some text ¶ to see";
std::string char_to_compare = "¶";

for( int i = 0;  i < str.size();  i++ )
    if( str.compare( i, char_to_compare.size(), char_to_compare ) == 0 )
        printf( "Found!\n" );