设计一个字符串类String(C++练习题)

Posted 我有点帅哦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计一个字符串类String(C++练习题)相关的知识,希望对你有一定的参考价值。

要求:设计一个字符串类String,可以求字符串长度,可以连接两个串(如,s1=“计算机”,s2=“软件”,s1与s2连接得到“计算机软件”),并且重载“=”运算符进行字符串赋值,编写主程序实现:s1="计算机科学",s2=“是发展最快的科学!”,求s1和s2的串长,连接s1和s2

 

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

class String
{

    char str[255];

public:
    String(){str[0]=\0;}
    String(char* s){strcpy_s(str,s);}
    String(String &s){strcpy_s(str,s.str);}

    String &operator=(String &);
    String &operator=(char*);
    
    void display(){cout<<str<<endl;}
    void strPlus(String);
    int strLen(){return strlen(str);}

};
String& String::operator =(String &s)
{
    if(this==&s)return *this;
    strcpy_s(str,s.str);
    return *this;

}
String& String::operator =(char *s)
{
    strcpy_s(str,s);
        return *this;
}

void String::strPlus(String s)
{
    int i=strLen();
    int j=s.strLen();
    int k=0;
    while(k<=j)
    {
        str[i++]=s.str[k++];
    }
}

int _tmain()
{
    String s1("计算机");
    String s2("软件");
    s1.strPlus(s2);
    s1.display();
    String s3="计算机科学";
    String s4="是发展最快的科学!";
    cout<<"求串长:计算机科学="<<s3.strLen()<<endl;
    cout<<"求串长:是发展最快的科学!="<<s4.strLen()<<endl;
    s3.strPlus(s4);
    s3.display();
    getchar();
    return 0;
}

 

以上是关于设计一个字符串类String(C++练习题)的主要内容,如果未能解决你的问题,请参考以下文章

代码片--练习匿名内部类

在 C++ 中通过赋值初始化自己的 String 类

C++面向对象例题:构建一个立方体类

C++初阶string(上)

C++从入门到入土第九篇:string相关OJ练习

C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle