c语言中处理汉字问题

     在c语言编写程序时,难免会涉及到汉字的问题,汉字的存储方式不同于普通字符,在不同的平台上,或编译环境中点有不同的字节时,既然不是单字符,如果有存储使用汉字,自然就想到使用字符串。
      通常用户可以使用strlen("中文")来显示,在当前环境下一个汉字字符在内存中占用的字符数。
      如果显示的是6,则一个汉字点用3个字节的长度,假设一个汉字长度为3个字节。
      一般的定义方式,需要注意的是,定义字符数组的长度不同比实际字符个数占用的长度加上一个‘/n'的个数少,如过长度不够输出的信息就会出现错误,因为无法知道其结束的位置。
      char s[7]="中国"; 2 * 3 + 1;
      char s[3] ="黄“;   
      因为对于字符串数组在结束处会自动加上一个结束标志“/n"。
      char s[] = "中国人民“; //使用默认的方式。
      对于汉字字符串同样可以,使用字符串函数中提供的函数,如strcmp,strcpy,strcat等。
      只要将汉字视为字符串处理就行了。
      定义为汉字字符二维数组,如下:
      char word[10][4]={"中","国","人","民"};
      word[0]便是“中”,依次类推word[3]是“民”。
     
#include 
 
 
  
  
#include 
  
  
   
   

int main()
{
	char word[10][4]={"中","国","人","民"};
	char key1[10];
	char key2[10];
	printf("%s %s %d  %d/n",word[0],word[3],strlen(word[3]),strlen("中国人"));	
	//将汉字作为字符串读入	
	scanf("%s",key1);
	//使用字符串函数
	printf("%s %d/n",key1,strlen(key1));	
	scanf("%s",key2);
	printf("%s %d/n",key2,strlen(key2));
	if(strcmp(key1,key2) == 0) printf("Two same worlds!/n");
	else printf("Diffrent!/n");
	char tmp[7];
	strcpy(tmp,key1);
	strcat(tmp,key2);
	char a[4]="如";  //定义一个汉字字符
	printf("%s/n",a);
	printf("%s/n",tmp);
	char s[13]="中国人民";
	printf("%s/n",s);
	return 0;
}
   
   

  
  
 
 
Console显示:
中 民 3  9
黄 
黄 3
黄
黄 3
Two same worlds!
如
黄黄
中国人民

  • 10
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值