请写一段用于统计txt文本中中英文字符的C语言代码
时间: 2023-06-05 21:07:52 浏览: 125
这是一个统计txt文本中中英文字符的C语言代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
int main()
{
char filename[100];
printf("请输入要读取的文件名:");
scanf("%s", filename);
FILE* fp = fopen(filename, "r");
if(fp == NULL)
{
printf("打开文件失败!");
exit(1);
}
int num_cn = 0;//中文字符数量
int num_en = 0;//英文字符数量
char c;
while((c = fgetc(fp)) != EOF)
{
if(isalpha(c))//如果是英文字母
{
num_en++;
}
else if((c & 0x80) && ((c>>1)&0x3F))//如果是中文字符
{
num_cn++;
}
}
printf("中文字符数量:%d\n", num_cn);
printf("英文字符数量:%d\n", num_en);
fclose(fp);
return 0;
}
注:该代码中对中文字符的判断是通过字符的二进制码来实现的。中文字符的二进制码都是以0xC开头的,所以只需判断二进制码的高位是否是1,次高位是否是1即可。
阅读全文