c语言处理汉字转.docVIP

  • 2
  • 0
  • 约1.49千字
  • 约 4页
  • 2017-06-07 发布于重庆
  • 举报
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]是“民”。 ????? [Csharp]?view plaincopy #include?stdio.h?? #include?string.h?? ?? 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;?? }pre/pre/string.h/stdio.h?? Console显示: [Csharp]?view plaincopy 中?民?3??9?? 黄??? 黄?3?? 黄?? 黄?3?? Two?same?worlds!?? 如?? 黄黄?? 中国人民?? pre/pre??

文档评论(0)

1亿VIP精品文档

相关文档