Dict.CN 在线词典, 英语学习, 在线翻译
aurain
专注网络编程
posts - 52,  comments - 140,  trackbacks - 0

最近查看了微软的c标准库针对字符串操作的部分源代码,整理了一下放上来
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;
}

posted on 2008-03-27 09:47 阅读(326) 评论(0)  编辑 收藏 引用 所属分类: c/c++基础知识

标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
相关链接:
网站导航:




<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

常用链接

留言簿(3)

随笔分类(52)

随笔档案(52)

网络开发

最新随笔

搜索

  •  

积分与排名

  • 积分 - 51503
  • 排名 - 44

最新随笔

最新评论

阅读排行榜

评论排行榜

60天内阅读排行