C++ 高级数据类型(二)—— 字符序列

本文深入探讨C++中的字符序列,包括如何初始化以空字符结束的字符序列,字符序列的赋值,字符串与其他数据类型的转换,以及常用的字符串操作函数。通过示例介绍了strcpy、cin.getline等函数的使用方法,并强调了字符串转换和赋值的注意事项。
摘要由CSDN通过智能技术生成

前面基础知识部分讲C++变量类型的时候,我们已经提到过C++的标准函数库提供了一个string类来支持对字符串的操作。然而,字符串实际就是一串连续的字符序列,所以我们也可以用简单的字符数组来表示它。

例如,下面这个数组:

char jenny [20];

是一个可以存储最多20个字符类型数据的数组。你可以把它想象成:

理论上这数组可以存储长度为20的字符序列,但是它也可以存储比这短的字符序列,而且实际中常常如此。例如,jenny 在程序的某一点可以只存储字符串"Hello" 或者"Merry christmas"。因此,既然字符数组经常被用于存储短于其总长的字符串,就形成了一种习惯在字符串的有效内容的结尾处加一个空字符(null character)来表示字符结束,它的常量表示可写为0 或'\0'。

我们可以用下图表示jenny (一个长度为20的字符数组) 存储字符串"Hello" 和"Merry Christmas" :

注意在有效内容结尾是如何用空字符null character ('\0')来表示字符串结束的。 后面灰色的空格表示不确定数值。


初始化以空字符结束的字符序列(Initialization of null-terminated character sequences)

因为字符数组其实就是普通数组,它与数组遵守同样的规则。例如,如果我们想将数组初始化为指定数值,我们可以像初始化其它数组一样用:

char mystring[] = { 'H', 'e', 'l', 'l', 'o', '\0' };

在这里我们定义了一个有6个元素的字符数组,并将它初始化为字符串Hello 加一个空字符(null character '\0')。

除此之外,字符串还有另一个方法来进行初始化:用字符串常量。

在前几章的例子中,字符串常量已经出现过多次,它们是由双引号引起来的一组字符来表示的,例如:

"the result is: "

是一个字符串常量,我们在前面的例子中已经使用过。

与表示单个字符常量的单引号(')不同,双引号 (")是表示一串连续字符的常量。由双引号引起来的字符串末尾总是会被自动加上一个空字符 ('\0') 。

因此,我们可以用下面两

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值