C++编程:理解字符串常量与C语言发展史

需积分: 3 1 下载量 32 浏览量 更新于2024-07-14 收藏 8.66MB PPT 举报
在C++程序设计中,字符串常量是一个重要概念,它们以双引号("...")括起来表示,存储在内存中的方式是按照字符顺序排列,并以空字符('\0')作为结束标志。例如,字符串"CHINA"在内存中占用的字节数是按照字符的ASCII码来计算的,每个英文字符(如'a')占用一个字节,而非英文字符可能占用多个字节。实际存储时,如: - "C" 的 ASCII 码是 0x43,即 11000011 - "H" 的 ASCII 码是 0x48,即 10000000 - ...,以此类推,直到 "A" 的 ASCII 码是 0x41,即 10000001,最后是空字符 '\0',其ASCII码是 0x00。 C++语言的发展历史值得了解,起源于1972年的C语言,由Dennis Ritchie和Brian Kernighan在B语言基础上创建,用于编写UNIX操作系统。C语言因其结构化、灵活性、高效性和可移植性等特点,成为了广泛使用的编程语言。C++是在C语言基础上的增强版,保留了C语言的优点,增加了面向对象编程特性。 C语言的主要特点包括: 1. 结构化:C语言强调模块化编程,易于理解和维护,适用于大型和小型项目,甚至科学计算。 2. 高级与低级结合:C语言支持高级语言的抽象,同时提供了低级语言的性能,如丰富的运算符(包括算术、逻辑和位操作),以及灵活的数据结构。 3. 可移植性:C语言编写的程序能够在多种计算机平台上运行,无需大量修改。 4. 自由度大与挑战性:虽然语法灵活性允许高级开发者写出高效代码,但初学者可能需要花费更多时间理解和调试,因为C语言的语法相对宽松。 学习C++的字符串常量和语法特性,有助于理解程序设计的基本构建块,同时也了解到C++语言在历史和应用中的位置,及其与其他语言的对比。对于程序设计者来说,掌握这些基础知识是至关重要的,无论是编写控制程序还是大型系统,都能有效利用C++的强大功能。

定义一个基类 BaseString,实现基本的输入字符串的功能。 //-------------------------------------------------------------------------------------------------- class BaseString { public: char *GetData();//返回字符串 void Input(); //输入字符串,遇到换行符结束 void Display();//显示字符串 BaseString(); ~BaseString(); unsigned int Getlength(){ return Length;}//获取字符串长度 protected: char Data[1024]; unsigned Length; //表示字符串的长度,不包括结束的'\0' }; //-------------------------------------------------------------------------------------------------- 2. 定义一个类 ReString,公有继承自 BaseString,添加一个函数 Reverse()实 现字符串的倒置功能,即:将对象中的数据成员 Data 数组的元素倒置。倒置的概 念是:原字符串为“abcd1234”,倒置后为“4321dcba”。 3. 定义一个类 CopyString,公有继承自 BaseString,添加一个函数 Copy()实现 字符串的拷贝功能(传入的参数可以是一个字符串对象,也可以从一个字符串常量, 将参数中的字符串拷贝到对象的 Data 数组中去,注意:不要使用系统内置的 strcpy() 函数)。 面向对象程序设计上机指导 20 4. 定义一个类 CmpString,公有继承自 BaseString,添加一个函数 Compare() 实现字符串的比较功能(传入的参数可以是一个字符串对象,也可以从一个字符串 常量,将参数中的字符串同对象中的 Data 进行比较)。 思考字符串比较的算法。注意:不要使用系统内置的 strcmp()函数。 5. 在 main()函数中体现出派生类的构造函数的调用次序。可以在各类的构 造函数中输出“I am the * class’s constructor”。*表示当前类名。 6. 定义一个类 NewString 继承自 ReString、CopyString 和 CmpString 三个类, 在程序中体现出多重继承中的基类的继承程序。为基类 BaseString 增加功能: ToUpper()函数将所有字母大写,ToLower()函数将所有字母小写。并在继承的过程 中声明为虚基类,比较 BaseString 作为虚基类和非虚基类的情况下的区别

2023-05-26 上传