99问答网
所有问题
问个简单的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://99.wendadaohang.com/zd/vXOtttjeW.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语言
字符数组的赋值最后自动添加‘\
0
’
问题
答:
c[5]只有5个空间无法完全容纳字符串"
hello
",因为这个字符串需要占用6个字符位置。所谓自动加'\0'的问题是:你写在双引号中的,编译程序会认为是字符串,会自动为你添加上一个字符串结尾符号
0,
而不是运行时添加的。如果你用debug方式运行程序,调试环境自动会把你开设的char a
[5];
进行初始化0的...
C语言
二级题
答:
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");} ...
以下程序的
输出
结果是( ) main( ) { char
b[
]=
"
Hello,
you
答:
b[5]=0
其实就是b[5]='\0',这步之后b[5]就变成'\0'了。说到这里好像都是废话,关键是后面,在后面输出字符串的时候
,c语言
规定字符串末尾是以'\0'结束的,也就是说只要碰到'\0'的话
C语言
就认为字符串就在这里结束了,后面的它也不管了,所以
输出Hello
之后C语言就认为字符串结束了,就是"...
c语言
下列程序段
的输出
结果是 答案
是Hello,不是
碰到\
0
停止
吗,怎么
遇到...
答:
因为定义的是字符型,所以0没有加单引号就表示'\
0
', 加单引号'0'这个就表示一个字符。
徐师大
c语言
期末考试11机
答:
十六进制的25,格式字符d所代表的含义是,以带符号的十进制形式输出整数(正数
不输出
符号),所以本题a=25则输出值为25
;b=
025转换为10进制:b=2*8+5=16+5=21,则输出的值为21
;c=
0x25转换为10进制:c=2*16+5=32+5=37,则输出的值为37,而且printf中三个%d之用的是空格,所以输出的几个数字之间也必须是...
C语言
中字符串的赋初值
问题,
如何解决
答:
1定义 char s
[
]=
"
Hello
";与( )等价?A. char s[4]="Hello"; B. char *s="Hello"; C. char s[ ]={'H','e','l','l','o','\
0
'}; D. char s[
];
s="Hello";分析:首先s的长度是6,系统自动加上'\0'结尾符号;A存在数组越界, B只是定义一个指向"Hello"的...
编一个
C语言
程序实现从一个字符型数组变量中找出一个标志字符0xff并将...
答:
(4) 光盘根据基制造材料和记录信息的方式不同,一般可分为 A) CD、VCD B) CD、VCD、DVD、MP3 C) 只读光盘、可一次性写入光盘、可擦写光盘 D) 数据盘、音频信息盘、视频信息盘 (5) 在计算机系统中,可执行程序是 A) 源代码 B) 汇编语言代码 C) 机器语言代码 D) ASCII码 (6) 计算机软件系统包括 A) ...
C语言
实现strcat函数,为什么会有这样
的输出?
答:
void StrCat(char *p ,char *q)函数最后需要给p添加字符串结束符'\
0
',否则就很大概率会出现乱码。另外,你的char a
[] =
"
hello
" ;定义的时候要弄得大一点,否则
把b
的字符连接到a的后面会发生数组越界访问,这是非法的做法。可以写成:char a[20] = "hello" ; 这样a的大小就够容纳 "...
大家正在搜
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...