十、C++ 系统String类
除了使用字符数组来处理字符串以外,c++引入了字符串类型。可以定义字符串变量。
1.定义及初始化
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
string str;
str = "china";
string str2 = " is great ";
string str3 = str2;
cout<<str<<str2<<endl<<str3<<endl;
return 0;
}
2.类型大小
cout<<"sizeof(string) = "<<sizeof(string)<<endl;
cout<<"sizeof(str) = "<<sizeof(str)<<endl;
3.常用运算
1.赋值
string str3 = str
2.加法
string combine = str + str2;
cout<<combine<<endl;
3.关系
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
string s1 = "abcdeg";
string s2 = "12345";
if(s1>s2)
cout<<"s1>s2"<<endl;
else
cout<<"s1<s2"<<endl;
string s3 = s1+s2;
cout<<s3<<endl;
return 0;
}
4.常见的成员函数
1.下标操作
char & operator[](int n) ;
2.求串大小
int size();
3.返回c串(c语言中的字符串也叫c串)
char *c_str();
4.查找
int find(char c, int pos = 0);
int find(char * s, int pos = 0);
5.删除
string &erase(int idx=0,int n = npos);
6.交换swap
void swap(stirng &s2);
5.string类型数组
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
string sArray[10] = {
"0",
"1",
"22",
"333",
"4444",
"55555",
"666666",
"7777777",
"88888888",
"999999999",
};
for(int i=0; i<10; i++)
{
cout<<sArray[i]<<endl;
}
return 0;
}
string 数组是高效的,如果用二维数组来存入字符串数组的话,则容易浪费空间,此时列数是由最长的字符串决定。如果用二级指针申请堆空间,依据大小申请相应的空间,虽然解决了内存浪费的问题,但是操作麻烦。用 string 数组存储,字符串数组的话,效率即高又灵活。
|