概述:对于字符串在C++中的表现我们可以使用两种方式。其一,使用字符数组的形式,这种风格是C语言形式的。其二,就是使用string类来表示字符串。下面我们分别看一下这两种形式:
一、字符数组:
比如下面这段代码:
#include <iostream>
using namespace std;
int main ()
{
char temp[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
cout << "Start message: ";
cout << temp<< endl;
return 0;
}
编译运行上面的代码,我们会得到如下结果:
Start message:Hello
因为数组以’\0’作为结束标志,所以任何数组在创建的时候都要多预留出一个位置。其次,数组在创建的时候要给出长度值,否则就要使用new/delete或者malloc/free来动态创建数组了,当然如果在定义的时候进行了初始化也可以不指明长度,例如,下面这种写法也是可以的:
char temp[] = 'Hello';
C++中有一部分函数是用来对该种形式的字符串进行操作的,比如:strcpy(s1, s2)、strlen(s1)等等。
二、string类
在C++中,大部分时间我们都是用string类来表示字符串,顾名思义,string是一个类,是类就有相应的属性和方法,比如下面这段代码:
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str1 = "wang";
string str2 = "dong";
string str3;
int len ;
// 复制 str1 到 str3
str3 = str1;
cout << "str3 : " << str3 << endl;
// 连接 str1 和 str2
str3 = str1 + str2;
cout << "str1 + str2 : " << str3 << endl;
// 连接后,str3 的总长度
len = str3.size();
cout << "str3.size() : " << len << endl;
return 0;
}
通过运用string类自带的方法,可以对字符串进行相应的操作,比之于字符数组确实方便了很多,对于具体的string类都有什么方法可供使用,在此只列举几个常用的,其他的就不一一列举了,大家感兴趣可以自己百度下。
string类提供了一系列针对字符串的操作,比如:
string test = 'This is test'
1. test.append() -- 在字符串的末尾添加字符
2. test.find() -- 在字符串中查找字符串
4. test.insert() -- 插入字符
5. test.length() -- 返回字符串的长度
6. test.replace() -- 替换字符串
7. test.substr() -- 返回某个子字符串