
正文
c语言判断字符串是不是汉字,c语言判断字符串是否为回文串
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言编程中如何判断一个字符是不是某个汉字,比如“我”。
如果是“判断字符是不是某个字符”if (ch == A)ch为char型字符,scanf或者getchar来获取。
首先你要知道你文件的汉字编码是什么 如果是gb2312或者是gbk 那么每发现一个超过0x80的字符,那么下一个 和它一起 构成一个汉字 如果是utf-8 那么每发现一个超过0x80的 ,和后续两个字节构成一个汉字。
利用strcmp函数的返回值来判断。strcmp函数是比较两个字符串的大小,返回比较的结果。
-2字符串abcdab有8个不同子串:abcd、bcda、cdab、ab、bc、cd、da、ab。字符串由数字、字母、下划线组成。一般记为 s=“a1a2···an”(n=0)。
相关问答
Q1: C语言中文汉字与字符判断
一个汉字是两个字符,因此需要使用字符串来判断。
if(s[i]0) //汉字的ASCII码属于“扩展ASCII码”,其每个字符的码值大于127,由于字义的是char数组,每个元素的表示范围为-128~+127,所以,大于127的字符在char中表现为负数。
例如:汉字“啊”的汉字机内码为B0A1H 表示成双字节是这样的10110000 10100001 本程序用的就是判断最高位的方法。
汉字用两个字节编码,且机内码的每字节最高位都是1。所以对于含有汉字的字符串a,可以用if(a[i]&0x80 && a[i+1]&0x80)来判断,若()内为真则为汉字,否则不是。
可以根据ASCII码值判断。汉字的两个字节的最高位都是1。西文字符的最高位恒为0 这是最简单的一种方法。
Q2: 怎么用C语言判断数组里面的字符是汉字还是其他。
先将输入的字符放入一个字符数组中,然后与另一个输入了中文字符的数组进行比较,用字符串比较库函数进行比较。
可以用sacnf或gets函数直接接收输入的字符串,然后用循环遍历字符串中每一个字符,判断其是字母还是数字。可以用循环调用getch()或getchar()函数来一个一个字符的接收输入,同时判读输入的是字母还是数字。
utf-8先转unicode,然后判断与127关系.gbk系列判断当前字节127则非中文,否则为中文,并跳过2字节。
Q3: C语言中如何判断中文字符?
汉字用两个字节编码,且机内码的每字节最高位都是1。所以对于含有汉字的字符串a,可以用if(a[i]&0x80 && a[i+1]&0x80)来判断,若()内为真则为汉字,否则不是。
if(~(p 8) == 0) 将p字节进行移位运算,右移8位,这样,如果移位后是0,则说明原来的字节最高位为0,不是1那么也就不是汉字的一个字节。
一个汉字是两个字符,因此需要使用字符串来判断。
utf-8先转unicode,然后判断与127关系.gbk系列判断当前字节127则非中文,否则为中文,并跳过2字节。
可以根据ASCII码值判断。汉字的两个字节的最高位都是1。西文字符的最高位恒为0 这是最简单的一种方法。
Q4: C语言判断汉字
1、首先,要确认数据类型是字符型。英文或一些特殊字符的ASCII码小于0x7f。中文是以区位码形式出现的,ASCII码大于0xa0。
2、这是跟汉字的存储方式有关,西文字符用ASCII码的话,一个字节可以表示一个字符,而汉字用的是双字节表示一个汉字。那么,为了在机器内部区分ASCII码和汉字机内码,就规定汉字的两个字节的最高为都为1。
3、首先一个汉字占2个字节,C语言一个char字符类型占1个字节,也就是在程序中汉字要当做字符串去处理。在C语言中就要用到char*指针或char[]字符数组来记录汉字。
4、一个汉字是两个字符,因此需要使用字符串来判断。
5、if(s[i]0) //汉字的ASCII码属于“扩展ASCII码,其每个字符的码值大于127,由于字义的是char数组,每个元素的表示范围为-128~+127,所以,大于127的字符在char中表现为负数。
6、if(s[i]0) //汉字的ASCII码属于“扩展ASCII码”,其每个字符的码值大于127,由于字义的是char数组,每个元素的表示范围为-128~+127,所以,大于127的字符在char中表现为负数。
Q5: C语言怎样判断用户输入的是中文?
这是跟汉字的存储方式有关,西文字符用ASCII码的话,一个字节可以表示一个字符,而汉字用的是双字节表示一个汉字。那么,为了在机器内部区分ASCII码和汉字机内码,就规定汉字的两个字节的最高为都为1。
先将输入的字符放入一个字符数组中,然后与另一个输入了中文字符的数组进行比较,用字符串比较库函数进行比较。
不建议在编程中使用中文作为变量名,虽然有些平台可以支持这样做。比如 int 测试=10;if(测试==10) printf(xxx\n);这样的 。不过 汉字作为字符串是可以的,但要比较,需要用strcmp。
汉字的国标码的第一位是1,assic码的第一位是0,可以根据这个性质检测一下,用10000000&(数组某位),如果结果是10000000,则是国标码,连续两个就能拼成一个汉字了。
关于c语言判断字符串是不是汉字和c语言判断字符串是否为回文串的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








