字符串函数构析

允我心安 提交于 2019-12-01 12:07:44

字符串函数构析

今日参加了一场笔试,刚好程序题问到一道strcpy函数构建,刚好之前看过字符串函数,同时网上文章大部分都是介绍了下函数的用法,缺少了函数的实现,今日就来自己构析下常见的字符串函数,字符串函数位于标准库的头文件string.h中,在使用函数时需引用该文件

strlen

  • 函数原型:size_t strlen(const char *s)
  • 函数功能:返回s的字符串函数(不包含结尾的0)
  • 函数构析:
    •  size_t strlen(const char *s)    /*size_t在不同架构下分别代表                              unsigned int和 unsigned long*/ {     int idx = 0;     while(s[idx]!='\0')     {         idx++;     }     return idx; }

strcmp

  • 函数原型:int mycmp(const char *s1,const char *s2)
  • 函数功能:比较两字符串,返回值为三种结果(以ascii码表对比)
    • 0:s1==s2

    • 正数:s1>s2

    • 负数:s1<s2

  • 函数构析:
     int mycmp(char *s1,const char *s2) {     while(*s1 == *s2 && *s1 != '\0')     {         s1++;         s2++;     }              return *s1 - *s2;  } 

     

strcpy

  • 函数原型:char *strcpy(char *dst,const char * src)
  • 函数功能:返回s的字符串函数(不包含结尾的0)
  • 函数构析:
     char *mycpy(char *dst,const char *src) {     char *rest = dst;     while(*dst++ = *src++);              *dst='\0';     return rest;  } 

     

strcat

  • 函数原型:char *mycat(char *dst,const char * src)

  • 函数功能:返回s的字符串函数(不包含结尾的0)
  • 函数构析:
     char *mycat(char *s1,const char *s2) {     char *rest = s1;     s1 = s1 + strlen(s1);     while(*s1++ = *s2++);          return rest; }

     

 


 

 

 

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