课程咨询 :13623629309

太原PHP培训 > 达内新闻 > 太原php培训:C++ 标准库-字符串 string 类(1)
  • 太原php培训:C++ 标准库-字符串 string 类(1)

    发布:太原PHP培训      来源:伯乐在线      时间:2016-09-29

  • 针对字符串处理,C++中并没有专门的内置类型。C语言是使用字符数组以及相应的指针来表示字符串。前面章节已经介绍了C++包容的C语言字符串处理方式。下面将讲解C++标准库封装字符串处理的字符串类类型。通过库提供的字符串类型公开方法接口,开发者可以很方便地定义操作字符串,使得操作字符串变得方便简易。

    1.1 string 字符串对象构造

    C++库中提供的字符串标准类是通过模板定义来实现的。其中,模板类basic_string主要用于表示两类字符串操作:一种是目前应用程序中常用的string类型;另一种是支持宽类型的字符操作。目前本章所讲述的是string类型。名称空间std中string其实只是basic_string模板类的别名。如果采用typedef定义string作为basic_string字符类型实例类的别名,其定义语句如下。

    太原php培训

    其中,模板类basic_string通过char字符型实例化其类型,即此时处理的字符串为char型。然后通过typedef关键字定义string为该类类型别名。这样,开发者就可以直接把string作为其类类型操作。下面所讲述的库提供的字符串类就是直接采用string名称来说明。

    C++标准库字符串类的对象实例定义时会涉及该类构造函数来实现构造。对于标准的字符串类,标准库提供了多个构造函数。开发者需要根据定义对象实例的方式,来决定调用哪个构造函数来构造字符串对象实例。下面讲解定义实现几种字符串对象构造实例,帮助读者了解标准库字符串类所提供的字符串对象构造方式。

    太原php培训

    在定义中,字符串类string提供了多种构造函数,实现了不同方式定义其对象实例并初始化。

    q 第一种构造方式,通过传入字符串指针构造并初始化字符串对象。

    q 第二个则是通过传入字符个数以及对应的字符来初始化既定个数字符的字符串对象。

    q 第三个则仅仅是通过构造函数来分配字符串变量空间,暂时先不作任何初始化工作。

    q 第四种方式是通过调用字符串类构造函数隐式地去执行了转换操作,给定义的字符串对象赋值。

    通常软件开发中采用第三种构造方式。程序中仅仅先定义字符串对应的对象,而赋值操作在实际应用中进行。字符串类string使用时,要注意包含字符串标准库提供的头文件#include。这样可以在应用程序中具体的使用字符串标准库的接口。

    1.2 string 字符串赋值

    C++标准库字符串类提供的字符串赋值操作有多种操作接口可选择。研究字符串类标准定义可以看出,字符串类赋值操作主要有两种方式:一种利用赋值符号重载实现,即直接使用等于号的重载而实现。另一种是使用提供的assign()方法接口实现字符串赋值操作。下面将会通过几个赋值操作的实例,来讲解标准字符串类提供的赋值操作。

    1.准备实例

    打开UE工具,创建新的空文件并且另存为chapter1301.cpp。该代码文件随后会同makefile文件一起通过FTP工具传输至Linux服务器端,客户端通过scrt工具访问操作。程序代码文件编辑如下所示。

    太原php培训

    本实例主要通过标准字符串类演示字符串对象相互赋值的操作情况。程序主要在主函数中演示字符串赋值操作,程序具体详解见程序注释与后面讲解。

    2.编辑makefile

    Linux平台下需要编译源文件为chapter1301.cpp,相关makefile工程文件编译命令编辑如下所示。

    太原php培训

    上述makefile文件套用前面的模板格式,主要替换了代码文件、程序编译中间文件、可执行程序等。在编译命令部分-g选项的加入,表明程序编译同时加入了可调式信息。

    3. 编译运行程序

    当前shell下执行make命令,生成可执行程序文件,随后通过make submit命令提交程序文件至本实例bin目录,通过cd命令定位至实例bin目录,执行该程序文件运行结果如下所示。

    太原php培训

    本实例中主要使用标准字符串类定义字符串对象,演示了标准字符串类提供的几种赋值方式的操作。程序中使用到字符串类时,需要include包含提供的头文件。对于标准字符串提供的等号赋值运算操作,初学者应该比较的熟悉。C++字符串类提供的assign()方法的操作更加灵活的实现了字符串赋值的种种可能出现的情况。该方法相对于等号赋值符的重载,并通过重载方法实现的赋值操作显得更加灵活。

    上述实例代码编写非常的简单,仅仅一个chapter1301.cpp代码源文件。程序主流程处理在main函数中完成。下面依次讲解五个字符串的定义和初始化实现方式。

    (1)首先定义string类的一个空字符串对象mystring1,随后的代码采用等号运算符为其赋值。此时mystring1字符串中存放的即为字符串“string”,下一行代码则打印输出验证mystring1中的值。

    (2)定义字符串对象mystring2时,采用另外一种构造并初始化的方式。将mystring1字符串中的内容作为新定义字符串mystring2的初始化值。此时mystring2字符串对象中存放的即为mystring1的内容,为字符串“string”。随后,打印输出并验证。

    (3)字符串对象mystring3的定义同mystring1。通过定义构造一个空字符串对象mystring3,随后采用标准字符串类提供的assign()方法为其赋值。此时调用的assign()方法,根据传入实参mystring1为字符串对象mystring3赋值。所以,mystring3中存放着字符串mystring1的值,打印输出验证mystring3中存放着字符串“string”。之后,mystring3又调用assign()方法。通过提供的重载assign()赋值方式,把mystring2字符串第一个字符到第三个字符的字符串赋给mystring3字符串。此时mystring3中存放着字符串“tri”。

    注意:字符串中字符串位置从0开始计算。

    (4)字符串变量mystring4则通过调用assign()重载方法,将mystring1字符串从位置1到字符串结尾处赋值给字符串mystring4,所以mystring4字符串中存放的字符串为“tring”。随后,打印输出验证。

    (5)字符串mystring5则调用assign()方法,并采用指定字符方式来赋值。该方法根据传入的实参使用4个’c’字符初始化该字符串。最后,打印输出mystring5中存放着字符串“cccc”。

    达内时代科技集团致力于培养面向电信和金融领域JavaC++C#/.Net3G/Android3G/IOSPHP、嵌入式、软件测试、UID、网络营销、网络工程、会计、UEDwebUnity3D、大数据、童程童美等17大方向中高端软件人才课程与少儿教育课程。选择太原php培训,不再孤军奋战,轻轻松松做IT高薪白领。太原达内培训带领有明确目标的学子迈向成功之路!想找工作的求职者可以加QQ3373924515(太原达内就业服务部)咨询了解。

上一篇:太原php培训:如何做技术设计

下一篇:太原php培训班:C++ 标准库-字符串 string 类(2)

最新开班日期  |  更多

php高级开发名企定制班(剩2个名额)

php高级开发名企定制班(剩2个名额)

开班日期:12-30

php高级开发周末班(剩5个名额)

php高级开发周末班(剩5个名额)

开班日期:12-30

php高级开发免费试听(剩5个名额)

php高级开发免费试听(剩5个名额)

开班日期:12-30

更多高级开发工程师精品班

更多高级开发工程师精品班

开班日期:12-30

  • 地址:山西省太原市小店区学府街长治路高新国际A座24层
  • 课程培训电话:13623629309     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56

    在线客服系统