文章目录
string 与 字符串数组的区别
string与字符串数组的不同
string
是一个类,string a="wang;
中的a是一个对象- 字符串数组本质上是一个数组
- string类使用起来比数组要简单
- 不能直接把一个字符串数组赋值给另外一个数组,但是string可以
- 字符串数组的赋值拼接使用下面两个函数进行
- 复制字符串:
strcpy()
例子:strcpy(charr1,charr2)
//赋值字符串charr2的值到charr1 - 末尾添加字符串 :
strcat()
例子:strcat(charr1,charr2)
//把字符串charr2添加到字符串charr1后面 - 注:如果添加或者复制后的
charr1
数组越界则会报错
- 复制字符串:
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 charrl = charr2;// INVALID, no array ass ignment 不合理的操作 str1 = str2;// VALID, object assignment ok 合理的操作
- 字符串数组的赋值拼接使用下面两个函数进行
- 初始化方式不同
- 字符串数组后面跟了 [] 而string类型后面没有跟[]
- 初始化的关键字一个是
char
一个是string
char first_date[] = { "Le Chapon Dodu"} ; char second_date[] { "The Elegant Plate"}; string third_date = { "The Bread Bowl"}; string fourth_date { "Hank's Fine Eats"};
- 求字符串长度的方法不同
int len1 = str1.size() ;// obtain length of str1 int len2 =. strlen(charr1) ;// obtain length of charr1
- 读取输入的方式不同,为什么是这样这设计到比较底层的设计,以后有空再补上(待补)
char charr1[20];
cin.getline(charr1,20);
string str;
getline(cin,str);
string与字符串数组的相同点
- 都可以使用C-风格的方式来初始化
- 都可以使用
cin cout
的方式来进行输入输出 - 都可以使用数组的方式来访问里面的元素
char charr1 [20] ;// create an empty array
char charr2 [20] = "jaguar"; // create an initialized array
string strl;// create an empty string object
string str2 = "panther";// create an initialized string
cout << "The third letter in”<< charr2 <<”is "
<< charr2[2] << endl ;
cout << "The third letter in"<< str2 <<"is"
<< str2 [2] << endl;// use array notation
string类详解
string的使用前提条件
- 必须包含头文件
#include <string>
- string位于名称空间
std
中,所以要使用using namesapce std;
或者类似的语句
string的初始化
上面已经写过了,这里复制粘贴再重新写一遍,对比如下代码,观察string初始化和字符串数组初始化的异同。
- 字符串数组后面跟了 [] 而string类型后面没有跟[]
- 初始化的关键字一个是
char
一个是string
char first_date[] = { "Le Chapon Dodu"} ;
char second_date[] { "The Elegant Plate"};
string third_date = { "The Bread Bowl"};
string fourth_date { "Hank's Fine Eats"};
string 的赋值 拼接和 附加
- 字符串的赋值参考string的初始化和字符串与数组的不同第四条
- 字符串的拼接可以直接使用
+
号或者+=
string str3; str3 = strl + str2;// assign str3 the joined strings str1 += str2;// add str2 to the end of str1