首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于字符串的一个简单有关问题(c语言)

2012-06-14 
关于字符串的一个简单问题(c语言)三种字符数组的区别,是否等价()char c[]{I am happy}char c[]{I,

关于字符串的一个简单问题(c语言)
三种字符数组的区别,是否等价()
  char c[]={"I am happy"};
  char c[]={'I',' ','a','m',' ','h','a','p','p','y'};
  char c[]={'I',' ','a','m',' ','h','a','p','p','y','\0'};



[解决办法]
前两个是等价的。最后一个不是。
[解决办法]
楼上正解,顶楼上,第三个多了一个\0..
[解决办法]

探讨
楼上正解,顶楼上,第三个多了一个\0..

[解决办法]
1,3一样, 2不一样.
[解决办法]
在给一个字符数组赋值字符串时,默认在字符串的结尾处添加'\0',作为字符串的结尾。
故1,3一样, 2不一样。可以用如下代码测试一下:

#include <stdio.h>

int main(int argc, char *argv[])
{
char a[]={"I am happy"};
char b[]={'I',' ','a','m',' ','h','a','p','p','y'};
char c[]={'I',' ','a','m',' ','h','a','p','p','y','\0'};

printf("length a=%d\n",sizeof(a)/sizeof(char));
printf("length b=%d\n",sizeof(b)/sizeof(char));
printf("length c=%d\n",sizeof(c)/sizeof(char));

return 0;
}
/*
result:
length a=11
length b=10
length c=11
*/
[解决办法]
char c[]={'I',' ','a','m',' ','h','a','p','p','y','\0'};
 多了一个 '\0'

可以使用 <string.h> 中的函数
[解决办法]
char c[]={'I',' ','a','m',' ','h','a','p','p','y','\0'};
 多了一个 '\0'

可以使用 <string.h> 中的函数
[解决办法]
探讨
1,3一样, 2不一样.

[解决办法]
通过实际运行,modicum_ck是对的。第一句应该是将“I am happy”的完整形式传递给数组
探讨

1,3一样, 2不一样.

热点排行