C小加

厚德 博学 求真 至善 The bright moon and breeze
posts - 145, comments - 195, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

自己实现的strcpy()和strlen()代码

Posted on 2012-02-25 10:00 C小加 阅读(2250) 评论(7)  编辑 收藏 引用 所属分类: C++和面向对象
//函数名:mystrcpy
//功能:字符串的复制
//函数说明:从strSrc地址开始的字符串赋值给strDest,两者都不能为空
char* mystrcpy(char* strDest,const char* strSrc)
{
    assert(strDest!=NULL);//断言,如果表达式为假则输出错误信息
    assert(strSrc!=NULL);
    char* p=strDest;
    while((*strDest++=*strSrc++)!='\0');
    return p;
}

//函数名:mystrlen
//功能:字符串的个数统计
//函数说明:统计字符串中字符的长度,不包括'\0',字符串不能为空
unsigned int mystrlen(const char* str)
{
    assert(str!=NULL);
   unsigned int cnt=0;
    while(*str++!='\0') cnt++;
    return cnt;
}

Feedback

# re: 自己实现的strcpy()和strlen()代码  回复  更多评论   

2012-02-25 13:37 by megax
我记得strcpy和strlen的高效实现是很有难度的。

# re: 自己实现的strcpy()和strlen()代码  回复  更多评论   

2012-02-25 13:39 by C小加
我是自己写的,求高效代码@megax

# re: 自己实现的strcpy()和strlen()代码  回复  更多评论   

2012-02-26 02:29 by dos命令大全
沙发,
人才啊

# re: 自己实现的strcpy()和strlen()代码  回复  更多评论   

2012-02-27 09:00 by zuhd
标准c里面不是这么实现的?

# re: 自己实现的strcpy()和strlen()代码  回复  更多评论   

2012-02-27 09:09 by C小加
标准C里面对前置空格进行了处理,我的没有。@zuhd

# re: 自己实现的strcpy()和strlen()代码  回复  更多评论   

2012-02-27 10:59 by zjh
看标准c代码,微软的即可,记得和机器字长有关

# re: 自己实现的strcpy()和strlen()代码  回复  更多评论   

2012-02-29 12:50 by tfzxyinhao
@C小加
crt 里面的strlen带有特制的magic number,一次可以检测一个DWORD

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理