判断字符串中是否有中文字符 c++
发布网友
发布时间:2023-07-11 01:46
我来回答
共4个回答
热心网友
时间:2024-04-10 13:29
#include <iostream>
using namespace std;
int main()
{
char a[10]="C程序设计";
int b=0;
for(int i=0;i<=strlen(a);i++)
{b=a[i];printf("%d ",b);}
return 0;
}
汉字的编码要占两个字符,而且每个字符均为负值,而英文字符为非负值。如上例所示。
根据这一性质就可以用来甄别是否为汉字了。
热心网友
时间:2024-04-10 13:29
这个是不可能的,中文字符就是要占两个CHAR位。
热心网友
时间:2024-04-10 13:30
单字符也是可以判断的,因为中文的两个字符都是负数
下面是一个测试,你可以根据你的需要改写:
#include <stdio.h>
void main()
{
char name[]="姓-名只能*+用=├中7文";
char tmep[3]="";
char *Name = name;
while(*Name!='\0')
{
if((int)*Name>0)
printf("%c 非中文\n", *Name);
else
{
tmep[0] = *Name;
Name++;
tmep[1] = *Name;
printf("%s 中文\n", tmep);
}
Name++;
}
}
也可以将“├”当作字符串来处理,这样就成了查找字符串的问题。
热心网友
时间:2024-04-10 13:30
定义成宽字符串 wchar