首页 > 编程知识 正文

c语言如何输出中文字符串,c语言字符串比较函数strcmp

时间:2023-05-04 15:04:53 阅读:14282 作者:126

关于中文字符串使用的c语言误解的背景前几天,我写c语言代码读写文件的时候,在处理文件中的中文诗句的过程中,发现了c语言txt文本文件中的中文被读入到char数组中的不寻常之处,特此总结。

c语言汉字的存储方法和特点以下为c语言代码,将中文存储与英文字符存储进行比较,可以看出c语言中中文占2字节,英文字符占1字节

读取文件时,utf-8ANSI编码的中文读取到字符串中的结果不同。

UTF-8

ANSI

因此,utf-8、ansi和unicode的中文汉码方式相同,众所周知英文字母都是Ascall码,但上面三个不同。

Unicode是一个国际通用代码,可以包含世界上的所有符号,但存储存在一些问题。 Unicode只规定符号的二进制代码,没有规定应该如何保存该二进制代码。 如果每个字符占4个字节,对字母来说会非常浪费。

utf-8编码是应用最广泛的unicode编码实现方式,utf-8的最大特点之一是加长编码方式。 1~4字节可以表示一个符号,字节长度根据符号而变化。

接下来是用更具体的知识说明编码

编码知识

在使用常用的c语言处理汉字时,必须注意txt文件的保存类型。 博主一般保存为ansi,占2字节。 因此,需要分割读取文件的字符也需要用2位分割。 另外,使用中文字符匹配时需要使用strcmp函数。 中文占2字节,英语占1字节,所以可以直接==判断。

以下是自己分割古诗的一个例子

使用char one[3]数组保存每次生成的汉字,代入新数组后,进行strcmp匹配,根据中文标点符号分割古诗。

以上是我写代码过程中的一些经验。 欢迎留言指导。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。