字符串是由一对双引号引起来的字符。如“abcd”,“hanruidashuaibi”,等等著如此类都是字符串常量,他们按照字符串中顺序按顺序储存,每个字符占用一个字节,并在结尾添加“\0”作为标记。一个字符串常量表示一个数组的首地址,因此可以用一个字符指针指向字符串。
char *test="rui123";
cout << test; //输出字符串
也可以用字符串数组存放字符串,比如以下形式
char str[] ={'r','u','i','1','2','3','\0'};//以这种方式输出请务必加上结尾“\0”,不然会出现乱码的情况
char str[7] = "rui123";//注意是7而不是6
char str1[] = "rui123";
以上介绍了使用字符串数组对字符串进行操作,虽然字符串数组以及字符串指针操作字符串有一定的优点,但是具体操作字符串中某一个字符时还是会遇到麻烦,我们下面介绍使用string类来处理字符串。
string 类
c++语言中定义了字符串类,
string 对象初始化
string test = "rui";
cout << test << endl;
string test1("rui");
cout << test1 << endl;
以上两种初始化方式输出的字符串相同。
string对象的操作
s.empty() //若s是空串,则返回true ,否则返回false
s.size() //返回s中字符串的个数
s[n] //返回s中位置位n的字符,位置从0开始计算
s1+s2 //链接两个字符串
string::size_type类型
从逻辑上来说,size()成员似乎返回的是整数值,但是size返回的是 size_type类型的值。这样可以保证足够大额能够储存任意string对象的长度,如下例
//输出字符串每一个字符
#include<iostream>
#include<string>
using namespace std;
int main()
{
string test = "rui";
for (string::size_type i = 0; i < test.size(); i++)
{
cout << test[i] << endl;
}
}
以上代码输出字符串的每一个字符。