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;
}
Ⅱ c语言 求怎么判断字母的大小写
c语言中,变量ch如果是一个char类型量,可以用以下的语句来进行判别大小写:
1、if(ch>='A' && ch<='Z')printf("%c是一个大写字母 ",ch)。
2、if(ch>='a' && ch<='z')printf("%c是一个小写字母 ",ch)。
3、if(ch>='0' && ch<='9')printf("%c是一个数字字符 ",ch)。
(2)c语言识别字扩展阅读:
其它方法得出字母的大小写:
方法一:
int main( )
{
char ch;
scanf(“%c”,&ch);
ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch;
printf(“%c ”,ch);
}
方法二:
利用利用ASIC码,小写字母从a到z,对应的码值是97—122;大写字母是65-90。
定义字符char c;
if(c>=97&&c<=122) //为小写字母
else //为大写字母
Ⅲ C语言问题 怎样从一个文件中逐个读入字符(每次读入一个)
charstr[1024];
inti=0;
while((str[i]=getchar())!=' ')
i++;
getchar();
(3)c语言识别字扩展阅读
C语言读取一个文件的字符:
#include<stdio.h>
intmain(void)
{
FILE*stream;
errno_terr;
//Openforread(willfailiffile"crt_fopen_s.c"doesnotexist)
err=fopen_s(&stream,"crt_fopen_s.c","r");
if(err==0)
printf("Thefile'crt_fopen_s.c'wasopened ");
else
printf("Thefile'crt_fopen_s.c'wasnotopened ");
}
Ⅳ C语言判断汉字
#include<stdio.h>
intmain()
{inti;
unsignedchars[200];
scanf("%s",s);
for(i=0;s[i];i++)
if(s[i]>127)
{printf("汉字");
i++;
}
elseprintf("字母");
return0;
}
(4)c语言识别字扩展阅读
C++利用汉字的ASCII编码小于0的特性判断汉字
//coding:utf-8
#include"stdio.h"
intmain()
{
constchar*str="ENG汉字测试ddd";
for(inti=0;str[i]!='