00问答网
所有问题
问个简单的c语言问题,其中b[5]=0;不是把0复制给b[5]了吗怎么还会输出HELLO呢?在线等,在先谢谢la !
void main( )
{
char b[]=”Hello you”;
b[5]=0;
printf(“%s\n”,b);
}
谢谢大家了,都说的有道理,不知道给谁好!我也就随便给个了。呵呵!
举报该问题
推荐答案 2011-06-10
你把b[5]赋值为0,其实就是char数组的第六个位置赋值为'\0','\0'在C语言中是
字符串
的末尾,意味着字符串的结束,因此你在b[5]=0之后,你的字符串就在hello的后面那个空格的时候结束了,其实就是你把原来的空格字符换成了结束字符,将字符串提前结束了,而至于还有hello是因为你的赋值是在b[5]位置,也就是数组的第六个元素的位置,而不是开头,如果你想要都不要的话,那么应该是b[0]=0
不信你自己改改代码一试就知道了
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/n0TBBBIZD.html
其他回答
第1个回答 2011-06-10
字符串是以0为结束符的
char b[]="Hello you";这个字符串实际上在你看不见的后面还有一个字符的结束符'\0',ASCII值为0
所以b[5]=0以后实际上载Hello的那个字符就是'\0'了,b数组指向的就是"Hello\0you"
printf("%s\n", b);实际在输出时遇到'\0'就结束了
第2个回答 2011-06-10
b[0]=H;b[1]=e;b[2]=l;b[3]=l;b[4]=o;b[5]=0;
字符串中是以\0作为结束标识的。所以后面的you不见了。
第3个回答 2011-06-10
字符串用'\0'也就是整数0标识结束,
b[5]=0;
之后,打印时只打印到b[4]
第4个回答 2011-06-10
b[5]是‘O'后面的空格;
字符串以0结束
相似回答
第九题
怎么
做
?
C语言
答:
b[5]=
‘0’:由于'0'本身就是字符,所以输出应该
是Hello0
you
c语言
下列程序段
输出
答:
回答:
Hello
没有为什么,printf遇到
0
就截断
关于
C语言
字符数组的赋值最后自动添加‘\
0
’
问题
答:
c[5]只有5个空间无法完全容纳字符串"
hello
",因为这个字符串需要占用6个字符位置。所谓自动加'\0'的问题是:你写在双引号中的,编译程序会认为是字符串,会自动为你添加上一个字符串结尾符号
0,
而不是运行时添加的。如果你用debug方式运行程序,调试环境自动会把你开设的char a
[5];
进行初始化0的...
C语言
二级题
答:
include <stdio.h> void main(){ int i;char b[10]="
Hello,
you";
b[5]=0;
//和b[5]='\0';一样 printf("%s \n", b); //因为'\0'是字符串结束标志,后面就不显示了 //但这样就可以显示全部 for(i=0;i<10;i++)printf("%c",b[i]);printf("\n");} ...
大家正在搜
c语言是一种什么语言
c语言a+=a-=a*a
c语言最简单的数据类型
c语言属于什么语言
c语言简单代码
c语言是什么
c语言简单心形代码
?c语言什么意思
c语言中%s和%c
相关问题
c语言中b[5]={'\0'}什么意思?
C语字符数组问题 main() { char b[]="He...
void main() { char b[]="Hello,...
计算机c语言 int a,b[5]; a=0;b[0]=3 ...
求void main(){char b[]="Hello,y...
二级C语言的问题。。。关于用printf输出数组。。。。
C语言问题,b数组已经赋值了,怎么还是输出是0.000,
以下程序的输出结果是( ) main( ) { char b...