Chinaunix首页 | 论坛 | 博客
  • 博客访问: 651860
  • 博文数量: 160
  • 博客积分: 2384
  • 博客等级: 大尉
  • 技术积分: 1366
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-01 11:35
文章分类
文章存档

2015年(45)

2014年(36)

2012年(28)

2011年(37)

2010年(2)

2009年(10)

2008年(2)

分类: C/C++

2014-11-04 23:47:41

// 方法strcat

char *strcat(char *strDest, const char *strSrc)

{

         assert((strDest != NULL) && (strSrc != NULL));

         char *address = strDest;

 

         while(*strDest)

                   strDest ++;

         while((*strDest++ = *strSrc++) != '\0')

                   NULL;

 

         return address;

}

// 方法strncat

char *strncat(char *strDest, const char *strSrc, size_t count)

{

         assert((strDest != NULL) && (strSrc != NULL));

         char *address = strDest;

        

        while(*strDest)

                   strDest ++;

 

         while (count --)

                   if ((*strDest++ = *strSrc++) == '\0')

                            return  address;

        

         *strDest = '\0';

         return address;

}

// 方法strcpy

char *strcpy(char *strDest, const char *strSrc)

{

         assert((strDest != NULL) && (strSrc != NULL));

         char *address = strDest;

         while((*strDest++ = *strSrc++) != '\0')

                   NULL;

         return address;

}

// 方法strncpy

char *strcpy(char *strDest, const char *strSrc, size_t count)

{

         assert((strDest != NULL) && (strSrc != NULL));

         char *address = strDest;

        

         while (count && ((*strDest++ = *strSrc++) != '\0'))

                   count --;

         if (count)

                   while(--count)

                            *strDest++ = '\0';

        

         return address;

}

// 方法strlen

int strlen(const char *s)

{

        assert( s != NULL);

         char *p = s;

        

         while(*p != '\0')

                   p++;

         return p - s;

}

// 方法strcmp

int strcmp(const char *src, const char *dst)

{

         int ret = 0;

 

         while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)

             ++src, ++dst;

   

         if ( ret < 0 )

             ret = -1 ;

         else if ( ret > 0 )

            ret = 1 ;

   

         return( ret );

}

阅读(455) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

mandagod2015-07-07 10:49:25

cpu0018:多处的strSrc后面漏写++

谢谢提醒

回复 | 举报

cpu00182015-07-05 20:54:31

多处的strSrc后面漏写++