zoukankan      html  css  js  c++  java
  • 部分C库函数重写

     1 #include <assert.h>
     2 
     3 //比较两个字符串大小
     4 int strcmp(const char *str1,const char *str2)
     5 {
     6     assert((*str1!=NULL)&&(*str2!=NULL));
     7     while(*str1!='\0'&&*str2!='\0'&& *str1==*str2 )
     8     {
     9         str1++;
    10         str2++;
    11     }
    12     int res=*str1-*str2;
    13     if(res==0)
    14         return 0; //str1等于str2
    15     else if (res>0)
    16         return 1; //str1大于str2
    17     else
    18         return -1; //str1小于str2
    19 }
    20 
    21 void main()
    22 {
    23     int x=strcmp("abc","abe");
    24     printf("%d\n",x);
    25 }
     1 //把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
     2 char *strcat(char *dest,char *src) //注:实参dest需要有足够空间容纳src,否则报错
     3 {
     4     assert((*dest!=NULL)&&(*src!=NULL));
     5     char *address=dest;
     6     while(*dest!='\0')
     7     {
     8         dest++;
     9     }
    10     while(*dest++=*src++)
    11     {
    12         NULL;
    13     }
    14     return address;
    15 }
    16 
    17 void main()
    18 {
    19     char str1[100]="abc",str2[]="efg";
    20     char  *p=strcat(str1,str2);
    21     printf("%s\n",p);
    22 }
     1 //把从strSrc地址开始且含有NULL结束符的字符串赋值到以strDest开始的地址空间
     2 char *strcpy(char *strDest,const char *strSrc)
     3 {
     4     assert((*strDest!=NULL)&&(*strSrc!=NULL));
     5     char *address=strDest;
     6     while((*strDest++=*strSrc++)!='\0')
     7         {
     8             NULL;
     9         }
    10     return address;
    11 }
    12 
    13 void main()
    14 {
    15     char str1[100]="abc",str2[]="efghig";
    16     char  *p=strcpy(str1,str2);
    17     printf("%s\n",p);
    18 }
  • 相关阅读:
    output (Elements) – HTML 中文开发手册
    JavaSE IO类层次关系和Java IO流的用法总结
    PHP attributes() 函数
    math_errhandling (Numerics) – C 中文开发手册
    C while 循环
    HTML <a> hreflang 属性
    static_assert (Error handling) – C 中文开发手册
    C 嵌套 switch 语句
    HTML DOM Input Time name 属性
    Bootstrap 弹出框
  • 原文地址:https://www.cnblogs.com/xingele0917/p/2742579.html
Copyright © 2011-2022 走看看