字符串的简单概念

什么是字符串

  • 定义
    字符串是存储在内存的连续字节中的一系列字符。

  • 先看个例子

char dog[5]={'i','l','o','v','e'};//这不能称为字符串; 
char cat[5]={'i','l','o','v','\0'};//这是字符串;
  1. 分析一波
    这两个数组都是char数组,但只有第二个数组是字符串。
    首先关注,空字符‘\0’。空字符对C-风格字符串而言至关重要。例如,C++有很多处理字符串的函数,其中包括cout使用的那些函数。它们都逐个地处理字符串中的字符,直到到达空字符为止。
    如果使用cout显示上面的cat这样的字符串,则将显示前4个字符,发现空字符后停止。但是,如果使用cout显示上面的dog数组(它不是字符串),cout将打印出数组中的5个字母,并接着将内存中随后的各个字节解释为要打印的字符,直到遇到空字符为止。因为空字符(实际上是被设置为0的字节)在内存中很常见,所以这一过程将很快停止。但尽管如此,还是不应将不是字符串的字符数组当作字符串来处理

初始化字符串的方法

  • 栗子
char Charles[]={'h','a','n','d','s','o','m','e'','\0'};//way one;
char Charles[]="handsome";//waytwo;

方法2的这种字符串被称为字符串常量(string constant)或字符串字面值(string literal)

用引号括起的字符串隐式地包括结尾的空字符,因此不用显式地包括它。

另外,各种C++输入工具通过键盘输入,将字符串读入到char数组中时,将自动加上结尾的空字符。

当然,应确保数组足够大,能够存储字符串中所有字符—包括空字符。使用字符串常量初始化字符数组是这样的一种情况,即让编译器计算元素数目更为安全。让数组比字符串长没有什么害处,只是会浪费一些空间而已。这是因为处理字符串的函数根据空字符的位置,而不是数组长度来进行处理。C++对字符串长度没有限制

字符串常量和字符常量的差别

  • 例子
    ‘S’ 是字符常量。在ASCII系统上,'S’只是83的另一种写法。
    "S"不是字符常量,它表示的是两个字符(字符S和\0)组成的字符串。

** 文章为读书笔记,内容来自《C+++Primer+Plus(第6版)中文版》**

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值