| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 399 人关注过本帖
标题:字符数组难题
只看楼主 加入收藏
千年小妖
Rank: 2
等 级:论坛游民
帖 子:11
专家分:17
注 册:2012-5-18
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:6 
字符数组难题
#include
#include   
int main()
{  
    char a[5] = {'h', 'e', 'l', 'l', 'o'};
    printf( "a length is : %d\n", strlen(a) );  
    return 0;
}
为什么结果是11啊?求高人指教。
搜索更多相关主题的帖子: include return 
2012-05-18 21:44
巴克
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:93
专家分:199
注 册:2012-2-8
收藏
得分:0 
char a[5] = {'h', 'e', 'l', 'l', 'o'};
这个初始化就错了
2012-05-18 22:33
a7882669
Rank: 4
等 级:业余侠客
帖 子:192
专家分:290
注 册:2012-4-17
收藏
得分:0 
#include   <stdio.h>
int main()
{  
    char a[6] = {'h', 'e', 'l', 'l', 'o'};
    printf( "%s\n",a );  
    return 0;
}
试试这个吧!!
2012-05-18 22:40
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:0 
是因为你的数组定义问题....它会自动加上‘\0’.....
2012-05-19 00:33
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
收藏
得分:0 
初始化有问题。
2012-05-19 09:06
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:0 
数组定义问题,你这样定义字符串后面不会加结束标志,所以他不知道数组的长度是多少。你试一下这样的定义char a[6] = {"hello"};,这种定义形式会自动加上结束标志'\0'。
理解一下这两种定义的区别你就会知道问题出在哪了。
2012-05-19 09:19
zhangqi_gsts
Rank: 6Rank: 6
来 自:甘肃天水
等 级:侠之大者
威 望:1
帖 子:227
专家分:457
注 册:2011-3-27
收藏
得分:5 
结果是12,15,100都有肯能,strlen()要找到第一个'\0'
2012-05-19 19:34
快速回复:字符数组难题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016276 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved