已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > C/C++ > 讨论/求助

标题: C语言字符串特性

作者: @Ta

时间: 2011-07-07

点击: 1930

在C语言中,字符串是以0x00做结束符的,也就是说,在遇到0x00后,不管后面还有没有内容,用C语言写出的程序都会认为字符串已结束。
利用这个特性我们可以很方便地不“等字符”地修改*.ext,比如:
 删除一段字符,只要把第一个字符改为0x00即可(把字符全部改成0x00会出错)。
 截断字符(让程序忽略后面的字符),把截断的位置改成0x00

这也可以解释为什么CMNET改成CMMM后运行完全正常。事实上,此时程序读取到的就是CMMM四个字符,第五个是0x00,因而程序遇到它就停止读取了。
这也可以解释,当文本文件中插入0x00时,阅读时为什么会从插入位置断开了。
感谢C语言字符串的特性,因为它,修改变得更加灵活。
注:0x??表示十六进制数,表示一个字节的十六进制值,不表示字符本身。

[隐藏样式|查看源码]


『回复列表(1|隐藏机器人聊天)』

1. 我记的是'\0'
(/@Ta/2011-07-07 18:08//)

回复需要登录

9月20日 15:47 星期六

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1