一道C语言的题目,关于字符串的长度

[复制链接]
查看11 | 回复6 | 2007-8-10 04:13:32 | 显示全部楼层 |阅读模式
长度为7m \x43
//一个十六进制数字符\\
//一个反斜杠字符\n
//一个换行字符p \102
//一个八进制数字符q
回复

使用道具 举报

千问 | 2007-8-10 04:13:32 | 显示全部楼层
长度是7解答:字符串的长度是指字符串中有效字符的个数.在C程序中,组成字符串的字符可以是一般的普通字符,也可以是转义字符.其中转义字符又可以用多种不同形式来表达:反斜杠字符之后接上预先规定的字符,用来表示特殊字符或特定意义的控制字符.如单引号字符,双引号字符,反斜杠字符等特殊字符,换行,回车,退格等控制字符.反斜杠字符之后接上1至3位八进制数字符,这是直接用八进制数字表示字符的ASCII代码的方式.反斜杠字符之后接上字符x,并后接1至2个十六进制数字符,这是直接用十六进制数字表示字符的ASCII代码的方式.后二种能表示C语言允许的任何字符.在本小题给出的字符串中,字符'\x43'是用十六进制数表示的一个字符,字符'\\'表示一个反斜杠字符,字符'\n'表示一个换行字符,字符'\102'是用八进制数表示的一个字符.这样,所给字符串只有7个有效字符.所以,该字符串的长度是7
回复

使用道具 举报

千问 | 2007-8-10 04:13:32 | 显示全部楼层
用函数strlenn=strlen(字符串名);,要使用本函数得包含一个头文件:#include输出n
回复

使用道具 举报

千问 | 2007-8-10 04:13:32 | 显示全部楼层
分解一下,共7个字符,实际上就是转义字符的概念,以下是分解步骤:m\x43\\\np\102q分解为m
:m\x43
:C 转义字符将十六进制值转换为字符0x43在ASCII码中就是字符‘C’\\
:\符号\是转义字符的开始所以不能单独使用,\\就是\自己了\n
:回车 \n 就是加回车不用说了p
:p\102
:B 和\x43类似 是八进制的值表示一个字符‘B’的八进制值就是102q
: q清楚的看出是7个字符,以后遇到类似的情况可以用以下程序看看,自己研究研究:#include #include void main(void){
char *p = "m\x43\\\np\102q";
printf("p = %s\nLen = %d\n", p, strlen(p));}结果为:p = mC\pBqLen = 7m\x43\\\np\102q
回复

使用道具 举报

千问 | 2007-8-10 04:13:32 | 显示全部楼层
长度为7
回复

使用道具 举报

千问 | 2007-8-10 04:13:32 | 显示全部楼层
同意一楼的答案,讲的很详细。。。。。。。。。。
回复

使用道具 举报

千问 | 2007-8-10 04:13:32 | 显示全部楼层
一楼讲得很不错,基础很牢固!!
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行