免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1487 | 回复: 1
打印 上一主题 下一主题

关于转义字符的几个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-07 10:52 |只看该作者 |倒序浏览
main()
{
        char *s = "aaa\x41";
        printf("%s\n",s);
}
输出结果为:aaaA,系统把\x41理解为转义字符'A'了

如果改为:char *s = "aaa\0x41";
输出结果为:aaa,是不是系统把\0x41理解为 \0  x41?因为\0是字符串的结束标志,可是\0x41也可以表示转义字符'A'啊.

如果改为:char *s = "aaa\041";
输出结果为:aaa! 系统把\041理解为八进制转义字符'!',为什么此时又不理解成\0 41了呢?

[ 本帖最后由 slowlykiss 于 2008-10-7 10:58 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-10-07 14:42 |只看该作者
消灭一下零回复

关于linux的转义,可以看一下man bash中的echo,
\0nnn  the eight-bit character whose value is the octal value nnn (zero to three octal digits)
\nnn   the eight-bit character whose value is the octal value nnn (one to three octal digits)
\xHH   the eight-bit character whose value is the hexadecimal value HH (one or two hex digits)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP