C++STLstring
一、构造函数
1)、 string s;//创建一个空的字符串,相当于string s("");
2)、 string s1("hehe"); //<=>char charArray[] = "hehe"; string s1(charArray);用字符数组初始化
3)、 string s2("hehe", 2);//使用“hehe”的前两个字符来初始化S2
4)、 string s3(s2);//直接使用string对象s2来初始一个新的对象,调用复制构造函数
5)、 string s4(s1, 1, 2);//格式是string s4(s1, pos, n);用s1对象的从pos位置开始的n个字符来初始化
6)、 string s5(5, 'h');//格式string s5(n, ch);用n个字符ch来初始化一个string对象
7)、 string s6(s5.begin(), s5.end());//使用迭代器来指定一个范围内的元素来初始化一个对象
二、输入输出
1)、getline(cin, str);//从cin对象中提取一个串给str对象,直到遇到回车或者文件尾才结束
2)、cin >> str; //直接读取一个串,但是遇到空格、TAB、回车、文件尾就结束
3)、cout << str;//可以直接输出,因为<<已经被重载
三、重载操作符
1)、<、 <=、>、>=、 ==、!= //可以直接使用来进行两个串的比较
2)、str = val; //赋值操作,val 可以是数组,string对象,字符串常量,但是不能是单个字符
3)、str += val; //字符串连接,把val接在str的后面,val可以是数组,string对象、字符串常量、单个字符
4)、str = val1 + val;//只要val、val1两者中有一个是string对象,就可以完成连接
5)、str[index];//使用下标访问单个字符:
四、常用的成员函数
1、----------------------------------------append()成员函数----------------------------------------------
1)、s.append(str);//参数为一个string对象
如:
string s;
string s1("hehe");
s.append(s1);
cout << s << endl;//打印hehe
2)、s.append(str, pos, n);//将str的从pos位置开始的n个字符追加到s的末尾
如:
string s;
string s1("hehe");
s.append(s1, 1, 2);
cout << s << endl;//打印eh
3)、s.append(charArray);//这个不多说,跟第一个差不多
4)、s.append(charArray, n);//看第二个来比较一下应该就知道了吧
如:
string s;
char ch[] = "hehe";
s.append(ch, 2);
cout << s << endl;//打印he
5)、s.append(n, ch);//在s的末尾追加n个字符ch,这个不举例了,很简单的
2、----------------------------assign()成员函数----------------------------
1)、s1.assign(s);//将s的备份复制给s1
如:
string s("hehe");
string s1;
s1.assign(s);
cout << s1 << endl;//打印hehe
2)、s.assign(str, pos, n);//将str的从pos位置开始的n个字符复制给s,这个不举例,很容易看懂的
3)、s.assign(charArray);
4)、s.assign(charArray, n);//要n字符而已
5)、s.assign(n, ch);//跟append(n, ch)比较
6)、s.assign(str.begin(), str.end());//用迭代器指定一个范围来复制给s
3、------------------------compare()成员函数----------------------------------------------------------------------
注:下面这些除了不容易理解的会给出例子之外,其他都不多说
说明:比较的原理是按照字典顺序,逐个比较的,如果s > str,返回正数,
如果s < str,返回负数; 如果s == str,返回0
1)、s.compare(str); //s与str比较
2)、s.compare(charArray);//s与charArray比较
3)、s.compare(pos, n, str);//s与str中从pos开始的N个字符比较
4)、s.compare(pos, n, charArray);//s与charArray中从pos开始的N个字符比较
5)、s.compare(pos1, n1, str, pos2, n2);//s中从pos1位置开始的n1个字符与str中从pos2开始的n2个字符比较
6)、s.compare(pos1, n1, charArray, pos2, n2);//s中从pos1位置开始的n1个字符与charArray中从pos2开始的n2个字符比较
4、------------------------c_str()、data()成员函数----------------------------------------------------------------------
1)、s.c_str();//返回以'\0'结束的C风格字符数组
2)、s.data();//返回不以'\0'结束的字符数组
5、------------------------erase()成员函数----------------------------------------------------------------------
1)、s.erase(pos, n);//删除从pos开始的n个字符
如:
string s("hehe");
s.erase(2, 2);
cout << s << endl;//打印he
2)、s.erase(iter);//删除迭代器iter指定的字符
6、------------------------clear()、empty()、capacity()成员函数----------------------------------------
1)、s.empty();//判断串是否为空
2)、s.clear();//使s成员空串
3)、s.capacity();//返回串s的容量
7、------------------------find()成员函数-------------------------------------------------------------------------
1)、s.find(str, pos);//在s中从pos位置开始匹配,匹配到就返回第一个匹配到的位置,否则返回string::npos
2)、s.find(charArray, pos);//在s中从pos位置开始匹配,匹配到就返回第一个匹配到的位置,否则返回string::npos
3)、s.find(charArray, pos, n);//在s中从pos位置开始匹配,最多匹配n个字符,匹配到就返回第一个匹配到的位置,否则返回string::npos
8、------------------------find_first_of()成员函数--------------------------------------------------------------
1)、s.find_first_of(str, pos);//从s的pos位置开始匹配,返回任意一个匹配到的字符的位置,否则返回npos
2)、s.find_first_of(ch, pos);//从s的pos位置开始匹配,返回第一个与ch匹配的字符的位置,否则返回npos
3)、s.find_first_of(charArray, pos);//从s的pos位置开始匹配,返回任意一个匹配到的字符的位置,否则返回npos
4)、s.find_first_of(charArray, pos, n);//从s的pos位置开始匹配,最多匹配n个字符,返回任意一个匹配到的字符的位置,否则返回npos
9、------------------------find_first_not_of()成员函数--------------------------------------------------------------
1)、s.find_first_not_of(str, pos);//从s的pos位置开始匹配,返回任意一个没有匹配到的字符的位置,否则返回npos
2)、s.find_first_not_of(charArray, pos);//从s的pos位置开始匹配,返回任意一个没有匹配到的字符的位置,否则返回npos
3)、s.find_first_not_of(charArray, pos, n);//从s的pos位置开始匹配,最多匹配n个字符,返回任意一个没有匹配到的字符的位置,否则返回npos
4)、s.find_first_not_of(ch, pos);//从s的pos位置开始匹配,返回第一个与ch不匹配的字符的位置,否则返回npos
10、------------------------find_last_of()成员函数--------------------------------------------------------------
1)、s.find_last_of(str, pos);//返回最后一个匹配到的任意一个字符的位置
2)、s.find_last_of(charArray, pos, n);//返回最后一个匹配到的任意一个字符的位置,匹配从pos位置开始,最多匹配n个字符
11、------------------------find_last_not_of()成员函数--------------------------------------------------------------
1)、s.find_last_not_of(str, pos);//返回最后一个没有匹配到的任意一个字符的位置
2)、s.find_last_not_of(charArray, pos, n);//返回最后一个没有匹配到的任意一个字符的位置,匹配从pos位置开始,最多匹配n个字符
3)、s.find_last_not_of(ch, pos);//返回最后一个与ch不匹配的任意一个字符的位置
4)、s.find_last_not_of(charArray, pos);//返回最后一个没有匹配到的任意一个字符的位置
//这里不在书写其他了,真没有心情了。我真的很想生气,这CSDN竟然点发表,保存都没有反映,结果点错舍弃。又得重写一扁,
下面的不在讲了。
补充:软件开发 , C++ ,