鱼C论坛

 找回密码
 立即注册
查看: 2901|回复: 4

有关C字节数的问题

[复制链接]
发表于 2012-8-23 20:27:00 | 显示全部楼层 |阅读模式
2鱼币
char *s="\ta\017bc" 指针变量s指向的字符串所占的字节数是6,不明白,求解析!!

最佳答案

查看完整内容

vc6.0下测试了你的题目,对于 # include "stdio.h " # include "string.h " main() { char *s= "\ta\017bc "; printf( "%d\n ",strlen(s)); while(*s != NULL) putchar(*s++); } 输出长度为5 对于 # include "stdio.h " # include "string.h " main() { char *s= "\ta\018bc "; printf( "%d\ ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-23 20:27:01 | 显示全部楼层
vc6.0下测试了你的题目,对于

#   include   "stdio.h "
#   include   "string.h "
main()
{
        char   *s= "\ta\017bc ";
        
        printf( "%d\n ",strlen(s));
        while(*s   !=   NULL)
        putchar(*s++);
}
输出长度为5
对于

#   include   "stdio.h "
#   include   "string.h "
main()
{
        char   *s= "\ta\018bc ";
        
        printf( "%d\n ",strlen(s));
        while(*s   !=   NULL)
        putchar(*s++);
}
输出结果为6

分析:结尾的 '\0 '是不计算在长度之内的
\017被分析为一个字符,因为他们可以按照一个八进制数来解释。
\018被分析为两个字符,因为8不是八进制数字。
\t是一个字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-23 21:28:17 | 显示全部楼层
这个字符串里面是  \t     a    \017  b  c   \0

\ 是转义符   \017 是八进制吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-25 20:14:49 | 显示全部楼层
"\ta\017bc"=09 61 0f 62 63 00   09='\t'   'a' =61 '\017'=0f  'b'=62  ......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-25 20:21:56 | 显示全部楼层
  \017  0F            SI (shift in)                                 启用切换
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-18 10:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表