C语言如何判断输入的字符串是否有汉字?

作者&投稿:苗狱 (若有异议请与网页底部的电邮联系)
c语言如何判断输入的字符串是否有汉字~

这是跟汉字的存储方式有关,西文字符用ASCII码的话,一个字节可以表示一个字符,而汉字用的是双字节表示一个汉字。
那么,为了在机器内部区分ASCII码和汉字机内码,就规定汉字的两个字节的最高为都为1.

例如:汉字“啊”的汉字机内码为B0A1H
表示成双字节是这样的10110000 10100001

本程序用的就是判断最高位的方法。

int is_zh_ch(char p)
{

if(~(p >> 8) == 0) 将p字节进行移位运算,右移8位,这样,如果移位后是0,则说明原来的字节最高位为0,不是1那么也就不是汉字的一个字节。
{
return 0; //代表不是汉字
}

return -1;
}


#include#includeint main(){char s[200],s1[3]; int i; printf("请输入一串汉字:"); scanf("%s",s); printf("请输入要查找的一个汉字:"); scanf("%s",s1); for(i=0;i=strlen(s))printf("未找到!"); return 0;}

这是跟汉字的存储方式有关,西文字符用ASCII码的话,一个字节可以表示一个字符,而汉字用的是双字节表示一个汉字。
那么,为了在机器内部区分ASCII码和汉字机内码,就规定汉字的两个字节的最高为都为1.

例如:汉字“啊”的汉字机内码为B0A1H
表示成双字节是这样的10110000 10100001

本程序用的就是判断最高位的方法。

int is_zh_ch(char p)
{

if(~(p >> 8) == 0) 将p字节进行移位运算,右移8位,这样,如果移位后是0,则说明原来的字节最高位为0,不是1那么也就不是汉字的一个字节。
{
return 0; //代表不是汉字
}

return -1;
}


用C语言编程:判断输入的一个字符是否为英文字母
ASCII里,大写字母和小写字母是分开的。所以要这样判断:char ch;if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))例如:include<stdio.h> int main(){ char c ;while(scanf("%c",&c)!=EOF){ getchar();if(c >='0' && c<='9')printf("%c是数字\\n",c);else if(c >...

C++怎么用switch语句判断输入的字符
把输入的字符转换成ASCII,通过ASCII进行判断,也可以参考下面的代码:switch(ch){ case 'a':printf("%d",ch);break;case 'z':break;default:printf("没有匹配成功。");} \/*类似上面的表达式,ch 与 'a' 比较,相等就输出,不等就一个一个判断全都不相等,则执行 default 后面的语句。\/ ...

C语言,如何判断输入的是字母?ASCII字母对于值是65--90,97--122。_百...
include <stdio.h>void main(){char ch;scanf("%c",&ch);(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')?printf("是字母"):printf("不是字母");}如果一定要用ASCII码表中字符对应的数来写,那么:include <stdio.h>void main(){char ch;scanf("%c",&ch);(ch>=65&&ch<=90||ch...

c语言中if语句如何验证输入一个字母是否与给定的相同?
include <string.h> if语句是指编程语言中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。if的返回值为真或假,可以用bool型变量进行存储,占用一字节。c语言提供了三种形式的if语句:1、if(表达式)语句。2、if(表达式)语句1 else 语句2。3、if(表达式1)。

如何用c语言编写程序,输入一个数n不一定是整数,判定n是小于0,等于0还是...
你可以使用条件语句(if-else语句)来判断输入的数n是小于0、等于0还是大于0。下面是一个使用C语言编写的示例程序:```c include <stdio.h> int main() { double n;printf("请输入一个数:");scanf("%lf", &n);if (n < 0) { printf("输入的数是负数\\n");} else if (n == 0)...

c语言中如何完整的判断输入的字符串是浮点数(代码)
如果字符串已放在 char 数组 str[] 里,例如 char str[]="123.34.34";double d;if ( sscanf(str,"%lf",&d) != 1 ) printf("wrong floating data\\n");

如何用c语言实现输入整数并判断?
在C语言中,if是判断语句,所以用它来对整数进行判断。if(a%2==0)是计算机认可的判断代码。4、因为需要进行结果的输出,不单单是判断而已,所以要结合else来结合进行判断,对结果进行输出。5、最后,点击“运行”,在弹出的输入页面之后,在其输入一个整数,点击回车,即可得出想要的结果了。

java 中如何判断输入的是int还是double
System.out.println("please input the ten strings:");Scanner sc = new Scanner(System.in);String number = sc.nextLine();if(number.contains(".")){ \/\/说明是一个小数 double d = Double.valueOf(s);} else{ \/\/ int i = Integer.valueOf(s);} Java是一门面向对象编程语言,不仅...

c语言中如何判断用户输入的字符串是指定范围的数字
%d\\n",strToNum(str)); else printf("错误!只能输入数字字符!\\n"); } return 0;}int strToNum(char *str)\/\/将字符串形式的整数转换成int型数字{ int len=strlen(str),i,sum=0; for(i=0;i<len;i++) sum+=(str[...

C语言如何判断是否有字符输入
使用ctype.h里面isdigit()和isalpha函数就可以判断了 include <ctype.h> include <stdio.h> int main(){ printf("1 是数字吗? %s\\n",isdigit('1')?"是":"不是");printf("a 是字母吗?%s",isalpha('a')?"是":"不是");return 0;} ...

电白县13698614753: c语言如何判断输入的字符串是否有汉字 -
彭泄谷氨: 这是跟汉字的存储方式有关,西文字符用ASCII码的话,一个字节可以表示一个字符,而汉字用的是双字节表示一个汉字.那么,为了在机器内部区分ASCII码和汉字机内码,就规定汉字的两个字节的最高为都为1.例如:汉字“啊”的汉字机内码为B0A1H 表示成双字节是这样的10110000 10100001 本程序用的就是判断最高位的方法.int is_zh_ch(char p) { if(~(p >> 8) == 0) 将p字节进行移位运算,右移8位,这样,如果移位后是0,则说明原来的字节最高位为0,不是1那么也就不是汉字的一个字节. { return 0; //代表不是汉字 } return -1; }

电白县13698614753: c语言中怎样判断一行中是否有汉字 -
彭泄谷氨: 楼上说的对,可以用处理英文的手法:例如:#include <string.h>...if(strcmp(str,"是")==0) ...;//假设输入的中文字符串在str里,和“是”比较是否一样 另外,团IDC网上有许多产品团购,便宜有口碑

电白县13698614753: C语言如何判断一个字符串中字符是否为指定中文字符 -
彭泄谷氨: BOOL findchar(char a[], char s) // a是字符串,s是需要判断的字符{ int i=0; while(a[i] != '\0') { if(s == a[i]) return true; i++; } return false;}

电白县13698614753: C语言中怎样判断汉字 -
彭泄谷氨: 汉字用两个字节编码,且机内码的每字节最高位都是1.所以对于含有汉字的字符串a,可以用if(a[i]&0x80 && a[i+1]&0x80)来判断,若()内为真则为汉字,否则不是.

电白县13698614753: 求C语言判断输入字符串是不是汉字的算法 最好说明原理 望各位高手帮忙 -
彭泄谷氨: 可以根据ASCII码值判断.汉字的两个字节的最高位都是1.西文字符的最高位恒为0 这是最简单的一种方法.

电白县13698614753: c语言中怎样判断一行中是否有汉字 -
彭泄谷氨: 楼上说的对,可以用处理英文的手法:例如:#include ...if(strcmp(str,"是")==0) ...;//假设输入的中文字符串在str里,和“是”比较是否一样另外...

电白县13698614753: C语言编程中如何判断一个字符是不是某个汉字,比如“我”. -
彭泄谷氨: 一个汉字是两个字符,因此需要使用字符串来判断.

电白县13698614753: 关于c语言中判断汉字的问题 -
彭泄谷氨: #include<stdio.h> void main() { char s[1200]; int i,sum=0; gets(s); for(i=0;s[i];i++) { if(s[i]<0)//汉字的编码小于0 { sum++; i++;//每个汉字是占两个字节的 } } printf("%d\n",sum); }

电白县13698614753: C语言判断是不是汉字 -
彭泄谷氨: 十六进制区位码+2020H=国标码,国标码+8080H=机内码.汉字在计算机内用两个字节表示,所以连续两个为负数的字节就表示一个汉字.

电白县13698614753: 在C语言中如何判断是否是汉字还是英文字母 -
彭泄谷氨: #include<stdio.h> int main() {int i; unsigned char s[200]; scanf("%s",s); for(i=0;s[i];i++)if(s[i]>127){printf("汉字 ");i++;}else printf("字母 "); return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网