C语言中strlen、strcpy、strncpy、strcat、strnact、strcmp、memcpy函数的实现

来源:互联网 发布:三菱plc编程手册哪里有 编辑:程序博客网 时间:2024/05/21 09:10
  1. int mystrlen(char *src)//strlen函数  
  2. {  
  3.     int i;  
  4.   
  5.     i = 0;  
  6.   
  7.     while(*src != '\0')  
  8.     {  
  9.         src++;  
  10.         i++;  
  11.     }  
  12.     return i;  
  13. }  
  14. char *mystrcpy(char *dest,char *src)//strcpy函数  
  15. {  
  16.     char *temp = dest;  
  17.       
  18.     while(*src != '\0')  
  19.     {  
  20.         *temp = *src;  
  21.     temp++;  
  22.     src++;  
  23.     }  
  24.     *temp = '\0';  
  25.     return dest;  
  26. }  
  27. char *mystrncpy(char *dest, char *src,int n)//strncpy函数  
  28. {  
  29.     char *temp = dest;  
  30.   
  31.     int i = 0;  
  32.   
  33.     while(i != n)  
  34.     {  
  35.         *temp = *src;  
  36.     temp++;  
  37.     src++;  
  38.     i++;  
  39.     }  
  40.     *temp = '\0';  
  41.   
  42.     return dest;  
  43. }  
  44. char *mystrcat(char *dest,char *src)//strcat函数  
  45. {  
  46.     char *temp = dest;  
  47.     while(*temp != '\0')  
  48.     {  
  49.         temp++;  
  50.     }  
  51.     while(*src != '\0')  
  52.     {  
  53.         *temp = *src;  
  54.     temp++;  
  55.     src++;  
  56.     }  
  57.     *temp = '\0';  
  58.     return dest;  
  59. }  
  60. char *mystrncat(char *dest,char *src,int n)//strncat函数  
  61. {  
  62.     int i = 0;  
  63.     char *temp = dest;  
  64.     while(*temp != '\0')  
  65.     {  
  66.         temp++;  
  67.     }  
  68.     while(i != n)  
  69.     {  
  70.         *temp = *src;  
  71.     temp++;  
  72.     src++;  
  73.     i++;  
  74.     }  
  75.     return dest;  
  76. }  
  77. int mystrcmp(char *dest,char *src)//strcmp函数  
  78. {  
  79.     while(*src != '\0' && *dest != '\0')  
  80.     {  
  81.         if(*dest > *src)  
  82.     {  
  83.         return 1;  
  84.     }  
  85.     else if(*dest < *src)  
  86.     {  
  87.             return -1;  
  88.         }  
  89.     src++;  
  90.     dest++;  
  91.     }  
  92.     if(*dest != '\0' && *src == '\0')  
  93.     {  
  94.         return 1;  
  95.     }  
  96.     if(*dest == '\0' && *src != '\0')  
  97.     {  
  98.         return -1;  
  99.     }  
  100.     if(*dest == '\0' && *src == '\0')  
  101.     {  
  102.         return 0;  
  103.     }  
  104. }  
  105. char *mymemcpy(char *dest,char *src,int n) //memcpy函数  
  106. {  
  107.     unsigned char *temp_dest = (unsigned char*)dest;  
  108.     unsigned char *temp_src = (unsigned char*)src;  
  109.   
  110.     while(n > 0)  
  111.     {  
  112.         *temp_dest = *temp_src;  
  113.     temp_dest++;  
  114.     temp_src++;  
  115.         n--;  
  116.     }  
  117.   
  118.     return dest;  
  119. }  
0 0
原创粉丝点击