c++中数据类型大部分和c语言都一样,像整型,浮点,char,结构体,数组等等,有区别的一点是c++中提供了字符串类型string,更严谨一点,string是c++提供的一个类。这一点是c语言中没有的,c语言中是以字符数组来存储字符串的。
要使用string类,必须在程序中包含头文件string。string类位于名称空间std中。string类定义隐藏了字符串的数组性质,让您能够处理普通变量那样处理字符串。
#include <iostream>
#include <string>
int main()
{
using namespace std;
char name[20];
string country;
cout << "enter your name:";
cin >> name;
cout << "enter your country:";
cin >> country;
cout << "my name is:" << name <<endl;
cout << "I am from " << country << endl;
}
string对象和字符数组之间的主要区别是,可以将string对象声明为简单变量,而不是数组。
类设计让程序能够自动处理string的大小,string声明一个对象时,长度为0,在程序将输入读取到country中时,country自动调整大小。这点与字符串数组相比,更加方便,也更加安全,不会存在越界的问题。从理论上说,可以将char数组视为一组用于存储一个字符串的char存储单元,而string类变量是一个表示字符串的实体。
string类的赋值、拼接和附加
使用string类时,某些操作比使用数组更加简单,例如,不能将一个数组赋给另一个数组,但可以将一个string对象赋给另一个string对象。
string类还简化了字符串合并操作,可以使用+操作符将两个string对象合并起来。,还可以使用操作符+=将一个字符串附加到一个string对象的末尾。
#include <iostream>
#include <string>
int main()
{
using namespace std;
string str1;
string str2 = "hello";
str1 = str2;
cout << "str1:" << str1 << endl;
cout << "str2:" << str2 << endl;
string str3 = "world";
str2 += str3;
cout << "str2 +str3 = "<< str2 << endl;
}
执行结果: