基本的函数的实现

1.char *strcpy(char *strDest, const char *strSrc)
 {
     if ( strDest == NULL || strSrc == NULL)
         return NULL ;
     if ( strDest == strSrc)
         return strDest ;
     char *tempptr = strDest ;
     while( (*strDest++ = *strSrc++) != '/0');
         return tempptr;
}

2.class String 
 { 
 public: 
     String(const char *str = NULL); // 普通构造函数 
     String(const String &other); // 拷贝构造函数 
     ~ String(void); // 析构函数 
     String & operate =(const String &other); // 赋值函数 
 private: 
     char *m_data; // 用于保存字符串
};
 

// 普通构造函数 

 String::String(const char *str) 
 { 
     //strlen在参数为NULL时会抛异常才会有这步判断 
     if ( str == NULL ) 
     { 
         m_data = new char[1] ; 
         m_data[0] = '/0' ; 
     } 
     else 
    { 
        m_data = new char[strlen(str) + 1]; 
        strcpy(m_data, str); 
    }
}

 // 拷贝构造函数 
String::String(const String &other)

    m_data = new char[strlen(other.m_data) + 1]; 
    strcpy(m_data, other.m_data);
}

// 赋值函数
String & String::operator =(const String &other)

    if ( this == &other) 
        return *this ; 
    
    delete [] m_data; 
    m_data = new char[strlen(other.m_data) + 1]; 
    strcpy(m_data, other.m_data); 
    return *this ;
}

// 析构函数 
String::~ String(void)

    delete [] m_data;//由于m_data是内部数据类型,也可以写成delete m_data;

}

3.<font style="font-size: 10.5pt;" face=""">char * __cdecl 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 */
}
4.void Order(vector &data) //起泡排序
{
     int count = data.size() ;
     int tag = false ;
     for ( int i = 0 ; i < count ; i++)
     {
         for ( int j = 0 ; j < count - i - 1 ; j++)
         {
             if ( data[j] > data[j+1])
            {
                tag = true ;
                int temp = data[j] ;
                data[j] = data[j+1] ;
                data[j+1] = temp ;
            }
        }
        if ( !tag )
            break ;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值