呵呵,问一个C语言里字符串长度的问题。

问题一、长度这个概念不懂,和位的概念一样吗。请具体讲讲?
问题二、红圈圈1、5中为什么反斜杠+双引号是一个长度?
红圈圈2、3中为什么 反斜杠+数字或英文字母?

字符串长度单位是字节个数。
字符串长度 从 字符串开始计算,遇到 字符串结束符 结束,结束符 不算在 字符串 长度里。
一对 单引号 括起的 是 一个 “字符常量”, 占 1个字节长度。
用反斜杠开始的字符叫 转意/转义 字符。
\" 表示1个双引号字符。
1 表示字符 1
\43 表示 是 8 进制数 043 对应 的 ASCII 字符
\n 是 新行符 (new-line 或 line-feed)
\x11 表示 是 16 进制数 0x11 对应 的 ASCII 字符
\' 表示1个单引号字符
字符串结束符是 '\0'

什么叫 转意/转义 字符,为何要用到 转义 字符,等等,你需要看书学习才懂。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-22
字符串的定义:以0值结尾的若干个字符,字符串的长度是数组中0值之前的字符数。
比如:字符串"1234"的具体存放在数组中是这样的:'1','2','3','4',0,由于0前面有4个字符,这个字符串长度为4,但必须占用5个位置才能存放。
所谓转义符号是这样的:c语言要用一些符号写程序,比如:printf("%d",x);这里的双引号用于表示"%d"这个字符串了,但我们如果需要输出双引号怎么办?就用\"代替写",比如我们要输出["abc"],可写:printf("[\"abc\"]");即可,同理我们要输出%号也要在字符串中用两个%代替,如输出【100%】可写x=100; printf("【%d%%】",x);
还有一些字符我们用键盘无法输入,比如回车键,在字符串中写用\n代替,\键用\\代替,只知道字符ASCII码八进制为43的可写\43,知道十六进制ASCII码11的写作\x11
这样“\"1\43\n2\x11\"”存放时为:'\"','1','\43','\n','2','\x11','\"',0字符串长度为7,最外边的一对双引号不属于存放的字符串,而是c语言标识字符串的保留符号。追问

呵呵,上面的回答就提问解答得全面、易懂。你的回答好好,希望以后更好的向你学习。

第2个回答  2013-11-21
第一个问题:长度的概念不是位,长度是以字节来算的,一个字节是八位。
第二个问题:因为那是转义字符,你需要查看一下转义字符就清楚了,看一下书就好,书上都有的。追问

呵呵,上面的回答就提问解答得全面、易懂。你的回答好好,希望以后更好的向你学习。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网