标题:编写strlen函数
只看楼主
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
结帖率:100%
已结贴  问题点数:20 回复次数:6 
编写strlen函数
不允许调用库函数,也不允许使用任何全局或局部变量编写 int strlen(char *strDest);
搜索更多相关主题的帖子: 编写 函数 strlen 
2009-12-01 18:48
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
得分:0 
无人应答

想象力征服世界
2009-12-01 19:09
xy4919961
Rank: 5Rank: 5
等 级:职业侠客
帖 子:199
专家分:362
注 册:2009-10-24
得分:20 
int strlen(char *strDest)
{
  if(!*strDest) return 0;

   return 1+strlen(++strDest);
}

[ 本帖最后由 xy4919961 于 2009-12-1 19:26 编辑 ]

QQ群:96348241
2009-12-01 19:24
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
得分:0 
不允许调用库函数,也不允许使用任何全局或局部变量

想象力征服世界
2009-12-01 19:26
xy4919961
Rank: 5Rank: 5
等 级:职业侠客
帖 子:199
专家分:362
注 册:2009-10-24
得分:0 
size_t  strlen(const char * s)
{
    if(*s == '\0')
        return 0;
    else
        return (strlen(++s) + 1);
}

QQ群:96348241
2009-12-01 22:59
wj_sam
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-12-2
得分:0 
int mystrlen(char *str)
{
        assert(str!=NULL);
        char *tmp = str;
        while(*str!='\0')
        {
                str++;
        }
        return (str-tmp)/sizeof(char);

}

我觉得这种方法是不是更好,直接用地址操作.

个人意见,仅供参考
2009-12-02 14:31
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
得分:0 
不允许调用库函数

可以调用自己现写的函数就好了。算了不想了。晕,其实还都都是那样。

char* str_strlen(char* str)
{
    if (!str)
    {
        return 0;
    }
    else
    {
        while ( *str++  != '\0');
        return str;

    }
}
int  sys_strlen( char*str)
{
    return str_strlen(str)-str;
}
2009-12-02 16:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-293604-1-1.html




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

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