永发信息网

C语言怎样判断用户输入的是中文?

答案:2  悬赏:70  手机版
解决时间 2021-05-02 00:06
  • 提问者网友:半生酒醒
  • 2021-04-30 23:23

我试过好多方法了,都不行啊。

比如我想过用sizeof()  和 strlen() 我本以为strlen()如果接受一个中文文字就返回1,然后用sizeof()的返回值除以strlen()的返回值就是2,如果不是中文返回的是1,这样是不行的,因为当strlen()接受一个中文文字时返回的也是2。晕了!

最佳答案
  • 五星知识达人网友:孤独入客枕
  • 2021-04-30 23:51

//给一个例子。希望对你有帮助


#include <stdio.h>
#include <string.h>
void main()
{
 char str[]="123abc万高超.,!";
 char strBuf[20]={0};
 int j=0,nCount=(int)strlen(str);
 for(int i=0;i<nCount;i++)
 {


//如果小于0则是中文,且后面一个也是中文。
  if(str[i]<0)
  {
   strBuf[j++]=str[i++];
   if(i<nCount)strBuf[j++]=str[i];
  }
 }
 printf("中文字符有%d个,它们是:\"%s\"",strlen(strBuf)/2,strBuf);
}

全部回答
  • 1楼网友:鱼忧
  • 2021-05-01 01:25
简单判断:大于127,但是只限中文和英文两种情况下
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯