zoukankan      html  css  js  c++  java
  • 字符串的复制

    不用库函数,自己编写一个字符串复制函数。

     1  //Version 1
     2 1 char * mystrcpy(char * dest, const char * src)
     3  2 {
     4  3     char *d = dest;
     5  4 
     6  5     assert((dest != NULL) && (src != NULL));
     7  6     while(*src != '')
     8  7         *d++ = *src++;
     9  8     *d = '';                              //it is important.
    10  9     return dest;
    11 10 }
     1 //Version 2
     2 char * mystrcpy(char * dest, const char * src)
     3 {
     4     char *d = dest;
     5     int count;
     6 
     7     count = strlen(src) + 1;
     8     assert((dest != NULL) && (src != NULL));
     9     while(count--)
    10         *d++ = *src++;
    11     return dest;
    12 }

    但是千万注意,上述代码并不完整,只适用于以下图1和2的情况。

    而对于图3的情况使用上面的代码会产生覆盖的现象,可以采用从后往前复制的方法,完整的代码如下:

     1 char * mystrcpy(char * dest, const char * src)
     2 {
     3     char * d = dest;
     4     char * s = src;
     5     int count;
     6 
     7     assert((dest != NULL) && (src != NULL));
     8     count = strlen(src) + 1;
     9 
    10     if(dest < src || dest > src+count)
    11     {
    12         while(count--)
    13             *dest++ = *src++;
    14     }
    15     else
    16     {
    17         d = dest + count;
    18         s = src + count;
    19 
    20         while(count--)
    21             *d-- = *s--;
    22     }
    23     return d;
    24 }
  • 相关阅读:
    FTP和SSH的区别
    Hadoop之回收站
    什么是簇?
    linux中环境变量的配置
    windows系统中的系统变量和用户变量,以及配置JDK中各个参数的意义
    linux 中yum和rpm 总结
    ajax请求之async:false/true的作用
    JavaScript eval() 函数的用法
    js模式
    数组的一些操作
  • 原文地址:https://www.cnblogs.com/philospy/p/4141444.html
Copyright © 2011-2022 走看看