C++ 如何检查字符串或字符是否有中文字符,然后显示其他字符?

C++ 如何检查字符串或字符是否有中文字符,然后显示其他字符?,c++,visual-c++,C++,Visual C++,我想检查每个单词的字符串或字符。 中文字符是否显示其他字符 #include <stdio.h> int main() { char ch[] = "Hello, 您Hi好!"; string str1("Hello, 您Hi好!"); printf("%s\n",ch); cout << "The string \"" << str1 << "\"'s size is " << str1.size()

我想检查每个单词的字符串或字符。 中文字符是否显示其他字符

#include <stdio.h>
int main()
{
    char ch[] = "Hello, 您Hi好!"; 
    string str1("Hello, 您Hi好!");
    printf("%s\n",ch);
    cout << "The string \"" << str1 << "\"'s size is " << str1.size() << endl;
      //for ch find the chinese char
      //if has chinese char show '|||'
      //normal to print
      //expect output:Hello, |||Hi|||!
    return 0;
}
#包括
int main()
{
char ch[]=“您好,您你好好!"; 
字符串str1(“你好,您你好好!");
printf(“%s\n”,ch);
不能包含
int main()
{
char ch[]=“您好,您你好好!";
字符c;
对于(int i=0;i如果((unsigned int)c>=0x4E00u&&(unsigned int)c,您的数组可能已对中文字符进行UTF-8编码。您可以迭代字符串,查找并解析UTF-8编码的序列,如果字符为“中文”"请注意替换。也注意,如果使用C++ +代码> STD::String 对象而不是C样式的null终止字节串,替换将变得容易得多。您尝试过WHARCS吗?<代码> WCARUTT < /COD>或 WString 。我想这些对您有用,您需要知道编码是什么,然后使用一个能够CLA的库。根据脚本对字符进行分类。标准库不支持此操作,编写自己的字符需要很长时间,而且可能会出错。如果可以,请对源代码和字符串使用Unicode编码,然后使用类似于Unicode字符串的库。如果需要使用不同的编码…祝你好运,这是一个困难的过程问题。错误原因:标识符“ox9FFFu”未定义如果不使用字符、字符串str1(“您好,您你好好!");我希望你们在自己测试我的解决方案之前不要说。我测试了它并成功了。是的,我在询问后测试,但不能识别“ox9FFFu”我使用Visual Studio 2010我修复了您的编译错误(您自己没有测试过这段代码),正如您所看到的,它不起作用。(我还在输出中添加了一个空格以使其更清晰。)您的比较从来都不是真的;如果
char
是无符号的,
(unsigned int)c
最多是255,如果是有符号的,则您的强制转换将为负值提供超过40亿的值。
#include <bits/stdc++.h>

int main()
{

    char ch[] = "Hello, 您Hi好!";
    char c;

    for(int i = 0; i < strlen(ch); i++) {
        c = ch[i];
        if ((unsigned int)c >= 0x4E00u && (unsigned int)c <= ox9FFFu) {
            printf("|||");
        }
        else printf("%c", c);
    }

    printf("\n");

    return 0;

}