C++中string类简介

C++中string类简介

ISO/ANSI C++98 标准通过添加 string类扩展了 C++库,因此现在可以 string 类型的变量(使用 C++的话说是对象)而不是字符数组来存储字符串。您将看到,string类使用起来比数组简单,同时提供了将字符串作为一种数据类型的表示方法。
要使用 string类,必须在程序中包含头文件string。string类位于名称空间 std中,因此您必须提供一条using 编译指令,或者使用 std:string来引用它。string 类定义隐藏了字符串的数组性质,让您能够像处理普通变量那样处理字符串。程序清单4.7说明了string对象与字符数组之间的一些相同点和不同点。

// strtype1.cpp -- using the C++ string class
#include <iostream>
#include <string>               // make string class available
int main()
{
    using namespace std;
    char charr1[20];            // create an empty array
    char charr2[20] = "jaguar"; // create an initialized array
    string str1;                // create an empty string object
    string str2 = "panther";    // create an initialized string

    cout << "Enter a kind of feline: ";
    cin >> charr1;
    cout << "Enter another kind of feline: ";
    cin >> str1;                // use cin for input
    cout << "Here are some felines:\n";
    cout << charr1 << " " << charr2 << " "
         << str1 << " " << str2 // use cout for output
         << endl;
    cout << "The third letter in " << charr2 << " is "
         << charr2[2] << endl;
    cout << "The third letter in " << str2 << " is "
         << str2[2] << endl;    // use array notation
    // cin.get();
	// cin.get();

    return 0; 
}

下面是该程序的运行情况:

Enter a kind of feline: ocelot
Enter another kind of feline:tiger
Here are some felines :
ocelot jaguar tiger panther
The third letter in jaguar is g
The third letter in panther is n

从这个示例可知,在很多方面,使用string对象的方式与使用字符数组相同。
可以使用 C-风格字符串来初始化 string 对象。
可以使用 cin 来将键盘输入存储到 string 对象中。
可以使用 cout 来显示 string 对象。

可以使用数组表示法来访问存储在 string对象中的字符。

程序清单 4.7表明,string对象和字符数组之间的主要区别是,可以将 string对象声明为简单变量,而不是数组:

string strl; //create an empty string object
string str2 ="panther"; //create an initialized string

类设计让程序能够自动处理 string的大小。例如,str1的声明创建一个长度为0的string对象,但程序将输入读取到 str1中时,将自动调整 str1的长度:

cin >>strl; //strl resized to fit input

这使得与使用数组相比,使用string对象更方便,也更安全。从理论上说,可以将char数组视为一组用于存储一个字符串的 char 存储单元,而 string 类变量是一个表示字符串的实体。

对C++感兴趣的朋友点这里:C/C++课程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值