linux字符串函数的实现(内核源代码)

来源:互联网 发布:数据库登录 编辑:程序博客网 时间:2024/06/05 09:09
 

char *strcpy(char *dest, const char *src)         //src复制到dest
 {
 char *tmp = dest;

 while ((*dest++ = *src++) != '\0')
                   ;
 return tmp;
}

 

char *strcat(char *dest, const char *src)      //src 连接到dest
{
 char *tmp = dest;

 while (*dest)
  dest++;
 while ((*dest++ = *src++) != '\0')
  ;
 return tmp;
}

 

 

int strcmp(const char *cs, const char *ct)       //比较两个字符串大小
{
 unsigned char c1, c2;

 while (1) {
  c1 = *cs++;
  c2 = *ct++;
  if (c1 != c2)
   return c1 < c2 ? -1 : 1;
  if (!c1)
   break;
 }
 return 0;
}

 

 

char *strchr(const char *s, int c)          //查找字符串s中首次出现字符c的位置
{
 for (; *s != (char)c; ++s)
  if (*s == '\0')
   return NULL;
 return (char *)s;
}

 

 

size_t  strlen(const char *s)        //字符串长度
{
 const char *sc;

 for (sc = s; *sc != '\0'; ++sc)
  /* nothing */;
 return sc - s;
}

 

 

void *memset(void *s, int c, size_t count)          //将已开辟内存空间 s 的首 count个字节的值设为值 c

 char *xs = s;

 while (count--)
  *xs++ = c;
 return s;
}

 

 

void *memcpy(void *dest, const void *src, size_t count)       //由src指向地址为起始地址的连续count个字节的数据复制到以dest指向地址为起始地址的空间内
{
 char *tmp = dest;
 const char *s = src;

 while (count--)
  *tmp++ = *s++;
 return dest;
}

 

原创粉丝点击