wolflion
string.h中的函数与实现
关于string的一些实现,可见如下链接:
http://www.jbox.dk/sanos/source/lib/string.c.html
http://longsy.javaeye.com/blog/353627
【这个博文也不错】
http://blog.csdn.net/sky2098/archive/2007/03/15/1530689.aspx
【他整理的函数也不错,呵呵】
int strcpy(char* a,char* b) 将b复制到a
char* strcpy(char* dest,const char* src)
{
char* tmp = dest;
while((*dest ++ = *src ++) != '\0')//nothing
return tmp;
}
int strcat(char* a,char* b) 将b连接到a后面
char* strcat(char* dest,const char* src)
{
char* tmp = dest;
while(*dest)
dest++;
while((*dest++ = *src++) != '\0')
;
return tmp;
}
int strcmp(char* a,char* b) 比较字符串
int strcmp(const char* cs,const char* ct)
{
register signed char _res;
while(1){
if((_res = *cs - *ct++)!=0 || !*cs++)
break;
}
return _res;
}
size_t strlen(const char* s)
{
const char* sc;
for(sc = s;count-- && *sc != '\0';++sc)//nothing
return sc - s;
}
void *memset(void *s,int c,size_t count)
{
char* xs = (char *) s;
while(count --)
*xs++ = c;
return s;
}
void *memcpy(void *dest,const void *src,size_t count)
{
char *tmp = (char *)dest,*s = (char *)src;
while(count --)
*tmp++ = *s++;
return dest;
}
void memcmp(const void *cs,const void *ct,size_t count)
{
const unsigned char *su1,*su2;
int res = 0;
for(sul = cs,su2=ct;0<count;++su1,++su2,count--)
if((res = *su1 - *su2) !=0)
break;
return res;
}
posted on 2009-12-24 13:35
lionel
阅读(142)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
博客园最新博文
博问
管理
My Links
C++博客
首页
联系
聚合
管理
Blog Stats
Posts - 1
Stories - 7
Comments - 0
Trackbacks - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
数据结构(1)
(RSS)
随笔档案
2012年6月 (1)
文章分类
开源数据库(1)
(RSS)
开源协议
(RSS)
软件工程
(RSS)
文章档案
2012年1月 (1)
2010年9月 (1)
2010年4月 (1)
2010年1月 (1)
2009年12月 (3)
搜索
最新评论