当前位置 博文首页 > 一个人,在路上:C++处理字符串的方法—字符串类与字符串变量

    一个人,在路上:C++处理字符串的方法—字符串类与字符串变量

    作者:[db:作者] 时间:2021-09-12 21:16

    用字符数组来存放字符串并不是最理想和最安全的方法。

    C++提供了一种新的数据类型——字符串类型(string类型),在使用方法上,它和char、int类型一样,可以用来定义变量,这就是字符串变量——用一个名字代表一个字符序列。

    实际上,string并不是C++语言本身具有的基本类型,它是在C++标准库中声明的一个字符串类,用这种类可以定义对象。每一个字符串变量都是string类的一个对象。

    一、字符串变量的定义和引用

    1. 定义字符串变量
    和其他类型变量一样,字符串变量必须先定义后使用,定义字符串变量要用类名string。如
    ? ? string string1;? //定义string1为字符串变量
    ? ? string string2=″China″; //定义string2同时对其初始化
    应当注意: 要使用string类的功能时,必须在本文件的开头将C++标准库中的string头文件包含进来 ,即应加上
    ? ? #include <string>? //注意头文件名不是string.h

    2. 对字符串变量的赋值
    在定义了字符串变量后,可以用赋值语句对它赋予一个字符串常量,如
    ? ? string1=″Canada″;
    既可以用字符串常量给字符串变量赋值,也可以用一个字符串变量给另一个字符串变量赋值。如
    ? ? string2=string1; //假设string2和string1均已定义为字符串变量
    不要求string2和string1长度相同,假如string2原来是″China″,string1原来是″Canada″,赋值后string2也变成″Canada″。在定义字符串变量时不需指定长度,长度随其中的字符串长度而改变。

    可以对字符串变量中某一字符进行操作,如
    ? ? string word=″Then″;? //定义并初始化字符串变量word
    ? ? word[2]=′a′; //修改序号为2的字符,修改后word的值为″Than″

    3. 字符串变量的输入输出
    可以在输入输出语句中用字符串变量名,输入输出字符串,如
    ? ?cin>> string1;? //从键盘输入一个字符串给字符串变量string1
    ? ?cout<< string2; //将字符串string2输出

    二、字符串变量的运算

    在上一节中可以看到: 在以字符数组存放字符串时,字符串的运算要用字符串函数,如strcat(连接)、strcmp(比较)、strcpy(复制),而对string类对象,可以不用这些函数,而直接用简单的运算符。
    1. 字符串复制用赋值号
      ? ?string1=string2;
      其作用与“strcpy(string1,string2);”相同。
    2. 字符串连接用加号
      ? ?string string1=″C++″; //定义string1并赋初值
      ? ?string string2=″Language″;//定义string2并赋初值
      ? ?string1=string1 + string2;//连接string1和string2
      连接后string1为″C++ Language″。
    3. 字符串比较直接用关系运算符
      可以直接用 ==(等于)、>(大于)、<(小于)、!=(不等于)、>=(大于或等于)、<=(小于或等于)等关系运算符来进行字符串的比较。
      使用这些运算符比使用5.5.5节中介绍的字符串函数直观而方便。

    三、字符串数组

    不仅可以用string定义字符串变量,也可以用string定义字符串数组。如
    ? ?string name[5]; //定义一个字符串数组,它包含5个字符串元素
    ? string name[5]={″Zhang″,″Li″,″Fun″,″Wang″,″Tan″};
    ? ?//定义一个字符串数组并初始化
    此时name数组的状况如图5.11所示。
    图5.11cs
    下一篇:没有了