字符串数组与字符串结束标志的几个问题

对于char[]="chinese",在计算数组长度时包不包括结束标志'\0',那么对于char[]={'c','a','t'}这种数组呢?对于前一种情况,如果用strc... 对于char[]="chinese",在计算数组长度时包不包括结束标志'\0',那么对于char[]={'c','a','t'}这种数组呢?
对于前一种情况,如果用strcpy将一个数组复制到另一个数组时,会否将结束标志也复制过去呢?
如果是,那么在输出复制后的数组时遇到该结束标志是否会终止?为什么?
如果不终止,那么是输出0还是空格呢?为什么?
展开
 我来答
老猿Python
2012-01-02 · TA获得超过918个赞
知道小有建树答主
回答量:459
采纳率:100%
帮助的人:330万
展开全部
对于char[]="chinese",在计算数组长度时包不包括结束标志'\0',那么对于char[]={'c','a','t'}这种数组呢?
***所有计算字符串的长度都不包括结束标志'\0',第2种情况同样。
对于前一种情况,如果用strcpy将一个数组复制到另一个数组时,会否将结束标志也复制过去呢?
***会
如果是,那么在输出复制后的数组时遇到该结束标志是否会终止?为什么?
***会终止,因为有结束符。
如果不终止,那么是输出0还是空格呢?为什么?
***会终止
追问
还有一些不明白,
1、如果char s[ ]="love",*p=s;其实s[ ]中应该写4吗?那么printf("%c",*(p+4))的结果是多少呢?0还是空格?
2、如果char s1[7]="chines";s[4]="ABC";strcpy(s1,s2),那么printf("%c",s1[5])又是多少呢?
追答
1、如果char s[ ]="love",*p=s;其实s[ ]中应该写4吗?那么printf("%c",*(p+4))的结果是多少呢?0还是空格?
**** *p=s这个有问题,应该是p=s,s[]中应该写5,要给结束符留一位,printf("%c",*(p+4))输出的是0对应的ASCII码,应该是一个不可见字符,不可能是空格,也不是数字0
2、如果char s1[7]="chines";s[4]="ABC";strcpy(s1,s2),那么printf("%c",s1[5])又是多少呢?
**** S2?应该是s吧?,将s拷贝给s1后,s1的内容就是"ABC", 执行拷贝后再执行printf("%c",s1[5]),会有输出,但输出是个随机数,很可能是“chines”的最后一个字符's',因为该输出与程序最近一次对内存的操作有关,有一定的随机性。
C8LUKA
2012-01-03 · 超过35用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:82.7万
展开全部
计算数组的时候'\0'是要算进去长度的,而实际计算的时候,我们看数组的长度是不会把'\0'算进去,这个算是一个定义级别的问题,如果你的数组长度是7,比如char data[7]=“chinese”,可能你在编译的时候没有问题,但是运行起来就会有问题,因为,内存空间要给chinese分8个char大小,另外就是打印你的char[]={'c','a','t'},如果你要直接打印,无外乎就是printf("%s",数组):的情况,但是%s的情况是在默认你后面有'\0',才是完整的字符串,才能打印出来,会出现乱码问题。至于你的char[]={'c','a','t'};长度是11的问题,可能是C语言对于没有完整定义字符串,而预留了一定的空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友28b4182
2012-01-02 · TA获得超过7223个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1874万
展开全部
对于char[]="chinese",在计算数组长度时不包括结束标志'\0',那么对于char[]={'c','a','t'}这种数组呢,这个计算长度总是输出11我不知道为什么?
对于前一种情况,如果用strcpy将一个数组复制到另一个数组时,会将结束标志也复制过去
如果是,那么在输出复制后的数组时遇到该结束标志会终止的,因为strcpy()这个函数里面写就是复制到'\0'结束的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式