| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 924 人关注过本帖
标题:求字符串长度
只看楼主 加入收藏
xinjinlong
Rank: 3Rank: 3
来 自:河南南阳
等 级:论坛游侠
帖 子:61
专家分:117
注 册:2010-1-19
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
求字符串长度
程序代码:
#include<stdio.h>
#include <string.h>
void main()
{
    char str[2];
    printf("str=%d\n",strlen(str));
    printf("\n");
}
大家看为什么运行的结果和计算的不一样呢?
在VC6.0下面运行当定义:str[1],str[2]....是得到的长度都是7,为什么?
搜索更多相关主题的帖子: 长度 字符 
2010-02-03 09:19
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:10 
下面的语句可能得到不同的结果strlen计算的是以'\0'结束的字符串的长度
printf("str=%d\n",strlen(str));
printf("str=%d\n",strlen(&str[1]));
printf("str=%d\n",strlen(&str[2]));   //事实上数组已越界,但照常运行
如果之前定义char str[2]={'a','b'};那么上面三个语句的结果可能是递减的!比如5,4,3
要理解:字符数组与字符串的差别

[ 本帖最后由 cnfarer 于 2010-2-3 09:59 编辑 ]

★★★★★为人民服务★★★★★
2010-02-03 09:48
xinjinlong
Rank: 3Rank: 3
来 自:河南南阳
等 级:论坛游侠
帖 子:61
专家分:117
注 册:2010-1-19
收藏
得分:0 
回复2楼:
你的意思是字符数组的长度是不确定的,字符数组只是开辟空间并没有给出结束标志('\0')
而strlen()只是求字符串的长度
2010-02-03 10:33
快速回复:求字符串长度
数据加载中...
 
   



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

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