设计一个字符串类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;
}

原文地址:https://www.cnblogs.com/junjunjun123/p/10049344.html

时间: 2024-09-29 18:11:58

设计一个字符串类String(C++练习题)的相关文章

设计一个字符串类,并将字符串处理函数的内容进行封装

#include<iostream> using namespace std; class String { public: //定义类的成员变量 char s[10] = "abcd"; char *ps = s; const char t[10] = "dcba"; const char *pt = t; char S[10] = "ABCDEF"; //构造函数部分 String(); String(const String &

设计一个Bank类,银行某账号的资金往来账管理

设计一个Bank类,实现银行某账号的资金往来账管理,包括建账号.存入.取出等.Bank类包括私有数据成员top(当前指针).date(日期).money(金额).rest(余额)和sum(累计余额).另有一个构造函数和3个成员函数bankinO(处理存入账).bankout()(处理取出账)和disp( )(出明细账). [知识点]:2.2  2.3 [参考分]:25分 [难易度]:B 实现案例: /* 2017年8月19日23:03:58 */ #include<iostream> clas

Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

#29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类Truck是Car类的子类,其中包含的属性有载重量payload.每个 类都有构造方法和输出相关数据的方法.最后,写一个测试类来测试这些类的功 能. package hanqi; public class Vehicle { private int wheels; private int weight

字符串混淆技术应用 设计一个字符串混淆程序 可混淆.NET程序集中的字符串

原文:字符串混淆技术应用 设计一个字符串混淆程序 可混淆.NET程序集中的字符串 关于字符串的研究,目前已经有两篇. 原理篇:字符串混淆技术在.NET程序保护中的应用及如何解密被混淆的字符串  实践篇:字符串反混淆实战 Dotfuscator 4.9 字符串加密技术应对策略 今天来讲第三篇,如何应用上面所学内容,设计一个字符串混淆程序. 先设计一个控制台程序,它是将要被我混淆的程序集文件: public static void Main() { try { RunSnippet(); } cat

oc 文件管理NSFileManager,文件读写NSFileHandle ,设计一个文件管理类将一个文件复制到另一个文件,由于文件过大要求每次复制100长度,通过NSFileHandle 来操作,并

设计一个文件管理类将一个文件复制到另一个文件,由于文件过大要求每次复制100长度,通过NSFileHandle来操作,并通过代理模式打印出当前的赋值进度百分比 main.m #import <Foundation/Foundation.h> #import "FileMaker.h" int main(int argc,const char * argv[]) { @autoreleasepool { NSString * fromPath = [NSHomeDirecto

类与对象 设计一个Dog类

题目内容: 设计一个Dog类,包含name.age.sex和weight等属性以及对这些属性操作的方法.实现并测试这个类.根据类的封装性要求,把name.age.sex和weight声明为私有的数据成员,编写公有成员函数setdata()对数据进行初始化,GetName().GetAge().GetSex()和GetWeight()获取相应属性.初始化数据由用户输入. 输入格式: Dog类对象的初始化数据 输出格式: 根据Dog类对象的初始化数据输出一句话,请严格按照格式输出,句末有点号. 输入

022给定一个字符串类型(string)表示的小数,打印出它的二进制表示(keep it up)

给定一个字符串类型(string)表示的小数,打印出它的二进制表示. 这个题注意字符串的合法性. 不过下面的代码没有处理那种无限循环的小数, 当出现无限循环小数时,while(other>0)可能永久为true 代码: #include <iostream> #include <string> std::string to_binary_string(const std::string& vNumStr) { std::string::size_type Pos =

设计一个学生类&amp;班级类

第一题 设计一个学生类 属性:姓名.学号.年龄.成绩 设计一个班级类要求:实现向班级中添加学生.删除学生.查看学生.按照指定条件排序 属性:班级代号,所有学生 需要使用 calss, __int__, __str__, sort, append, dict, list, remove, for in class Stu: # 设置学生基础属性 def __init__(self, name, num, age, cj): self.name = name self.num = num self.

Java:字符串类String的功能介绍

在java中,字符串是一个比较常用的类,因为代码中基本上处理的很多数据都是字符串类型的,因此,掌握字符串类的具体用法显得很重要了. 它的主要功能有如下几种:获取.判断.转换.替换.切割.字串的获取.大小写转换.去除空格.比较等 下面的演示都在StringTest类中进行 class StringTest { public static void sop(Object obj) { System.out.println(obj); } public static void main(String[