C++:【常见面试题】String类的写法

原创 2016年05月30日 17:16:36
#include<iostream>
#include<stdlib.h>
using namespace std;

class String
{
public:
    String(const char* str)
        :_str(new char[strlen(str) + 1])  //  \0
    {
        strcpy(_str, str);
    }

    String(const String& s) 
        :_str(NULL)   //若不赋空则为随机值,随机值_str析构函数释放指针会崩溃
    {
        String tmp(s._str);     //重新开辟空间
        swap(_str, tmp._str);
    }

    //String& operator = (const String& s)
    //{
    //    if (this != &s) //不是自己给自己赋值
    //    {
    //        String tmp(s._str);   //重新开辟空间
    //        swap(_str, tmp._str);
    //    }
    //    return *this;
    //}
    String& operator = (String s)
    {
        swap(_str, s._str);
        return *this;
    }

    ~String()
    {
        if (_str)
        {
            delete[] _str;    //注意与new char[n]匹配
        }
    }

    char* CStr()
    {
        return _str;
    }

    char& operator[](size_t index)  //重载输出单个字符
    {
        return _str[index];
    }

private:
    char* _str;
};

void Test2()
{
    String s("change world");
    cout << s[1] << endl;

    s[1] = 'x';
    cout << s.CStr() << endl;
}

int main()
{
    Test2();
    system("pause");
    return 0;
}


C++笔试题 String类的实现

这个在面试或笔试的时候常问到或考到。 已知类String的原型为: class String { public:      String(const char *str = NULL);// 普通...
  • caoshangpa
  • caoshangpa
  • 2016年05月29日 09:12
  • 3820

【C++】C++常见面试题汇总,持续更新中...

1:指针(*)、引用(&)、解引用(*)、取地址(&)、的概念和区别 概念: 指针指向一块内存,指针保存的是内存的地址;引用是变量的别名,本质是引用该变量的地址。 解引用是取指针指向的地址的内容...
  • hero_myself
  • hero_myself
  • 2016年03月23日 13:53
  • 6245

与String相关的面试题汇总

归纳一些常见的关于String、StringBuffer、StringBuilder的面试题……
  • hai_cheng001
  • hai_cheng001
  • 2014年07月21日 22:30
  • 1964

面试题--C++面试中string类的一种正确写法

先保存,有时间给出自己的实现办法: 参考:链接 C++ 的一个常见面试题是让你实现一个 String 类,限于时间,不可能要求具备 std::string 的功能,...
  • chengshuguang
  • chengshuguang
  • 2013年10月09日 16:44
  • 446

String常见面试题——(一)

1、一个中文汉字能保存在一个char里吗? byte呢?请看下面的例子: public class ChineseTest { public static void main(String...
  • u011118321
  • u011118321
  • 2017年03月29日 22:30
  • 344

Java String常见面试题汇总

String类型的面试题 1.       String是最基本的数据类型吗? 基本数据类型包括byte,int,char,long,float,double,boolean,sh...
  • zhangliangzi
  • zhangliangzi
  • 2016年03月26日 11:41
  • 1268

String常见面试题及与StringBuffer区别

1 public class StringDemo 2 { 3 public static void main(String[] args) 4 { 5 ...
  • zfs592645357
  • zfs592645357
  • 2014年10月30日 16:18
  • 222

java中常见面试题String,StringBuffer,StringBulider 的区别及相应的使用方法介绍

String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。 字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为String 对...
  • wangchong199358
  • wangchong199358
  • 2013年09月16日 20:01
  • 1061

JAVA、C、C++常见面试题汇总

  • 2012年08月22日 09:31
  • 123KB
  • 下载

C/C++程序员应聘常见面试题深入剖析

1.引言    本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。  许多面试题看似简单,却需...
  • azcc84
  • azcc84
  • 2012年12月14日 16:29
  • 853
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++:【常见面试题】String类的写法
举报原因:
原因补充:

(最多只允许输入30个字)