微软c标准库中字符串操作源代码

和自甴很熟 提交于 2019-12-10 07:47:19

位置:VC\crt\src (crt C RunTime library)

char * strcat(char * dst, const char * src)
{
 char * cp = dst;
 
 while(*cp)
 {
  cp++;  /* find end of dst */
 }
 
 while (*cp++ = *src++); /* Copy src to end of dst */
 
 return dst; /* return dst */
}

char * strcpy(char * dst, const char * src)
{
 char * cp = dst;
 
 while (*cp++ = *src++);  /* Copy src over dst */
 
 return dst;
}

char * strchr(const char * string, int ch)
{
 while (*string && *string != (char)ch)
 {
  string++;
 }
 
 if (*string  == (char)ch;
  return (char *)string;
 
 return NULL;
}

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 );
}

size_t strlen(const char * str)
{
 const char * eos = str;
 
 while (*eos++);
 
 return (int)(eos - str - 1);
}

char * strstr(const char * str1, const char * str2)
{
 char * cp = (char *)str1;
 char *s1, *s2;
 
 if (!*str2)
  return (char *)str1;
 
 while (*cp)
 {
  s1 = cp;
  s2 = str2;
  
  while (*s1 && *s2 && !(*s1-*s2))
   s1++, s2++;
  
  while (!*s2)
   return cp;
  
  cp++;
 }
 
 return NULL;
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!