A, les propriétés de chaîne
chaîne STL est un type de chaîne, généralement utilisé pour représenter une chaîne. Avant d' utiliser la chaîne, la chaîne avec le charbon est généralement indiqué, la chaîne et le charbon peuvent être utilisés pour représenter une chaîne.
Parlant des propriétés de chaîne, et aurait omble chevalier type chaîne de comparaison:
. 1, char est un pointeur, est une classe de chaîne
chaîne encapsule char *, la gestion de la chaîne, est char conteneur de type.
2, chaîne encapsule beaucoup de méthode membre pratique
pour trouver trouver, copier copier, supprimer supprimer, remplacer le remplacer, insérer INSERT
3, quelle que soit la version de la mémoire et transfrontalière
chaîne ombles gérer la mémoire allouée, chaque chaîne de copie, par valeur classe chaîne prend en charge, ne vous inquiétez pas de la valeur de la coopération transfrontalière et la copie transfrontalière et ainsi de suite.
. 4, la chaîne et le charbon sont interchangeables, tour chaîne char fourni par une chaîne de caractères de la méthode c_str ().
//string转char*
string str=“abcdefg”;
const char* cstr=str.c_str();
//char*转string
char* s=“abcdefg”;
string sstr(s);
Deux, l'initialisation du conteneur de chaîne, couture, travaux, trouver, remplacer, comparer, sous-chaîne, insérer et supprimer
#include<iostream>
#include<string>
using namespace std;
/////////////////////// 1- initialisation
void test01() {
string s1;//调用无参构造
string s2(10, 'a');
string s3("abcdefg");
string s4(s3);//拷贝构造
cout << s1 << endl;
cout << s2 << endl;
cout << s3 << endl;
cout << s4 << endl;
}
2- Affectation //////////////////////
void test02() {
string s1;
string s2("appp");
s1 = "abcdefg";
cout << s1 << endl;
s1 = s2;
cout << s1 << endl;
s1 = 'a';
cout << s1 << endl;
//成员方法 assign 进行赋值
s1.assign("jkl");
cout << s1 << endl;
}
3- opération de valeur //////////////////////
void test03() {
string s1 = "abcdefg";
//重载[]操作符
for (int i = 0; i < s1.size(); ++i) {
cout << s1[i] << " ";
}
cout << endl;
//at成员函数
for (int i = 0; i < s1.size(); ++i) {
cout << s1.at(i) << " ";
}
cout << endl;
//区别:[]方式 如果访问越界,直接挂掉
// at方式 访问越界,抛出异常out_of_range;
try {
cout << s1.at(100) << endl;
}
catch(...){
cout << "越界" << endl;
}
}
4- opération de raccordement /////////////////////
void test04() {
string s = "abcd";
string s2 = "1111";
s += "abcd";
s += s2;
cout << s << endl;//abcdabcd1111
string s3 = "2222";
s2.append(s3);//把s3加到s2后面
cout << s2 << endl;// 11112222
string s4 = s2 + s3;//把s3加到s2的后面
cout << s4 << endl;//111122222222
}
//////////////////// 5- Rechercher et remplacer
void test05() {
string s = "abcdefgsadasaafgddefgde";
//查找第一次出现的位置
int pos=s.find("fg");
cout << "pos:"<<pos << endl;
//查找最后一次出现的位置
pos = s.rfind("fg");
cout << "pos:" << pos << endl;
}
///////////////////// opération de remplacement
void test06() {
string s = "abcdefg";
s.replace(0, 2, "111");
cout << s << endl;
}
6- comparaison de chaînes ////////////////////
void test07() {
string s1 = "abcd";
string s2 = "abce";
if (s1.compare(s2) == 0) {
cout << "字符串相等" << endl;
}
cout << "不相等" << endl;
}
////////////////// sous-chaîne de commande 7 cordes
void test08() {
string s = "abcdefg";
string sub=s.substr(1, 3);
cout << sub << endl;
}
///////////////// insertion et de suppression 8 cordes
void test09() {
string s = "abcdefg";
s.insert(3, "111");//abc111defg
cout << s << endl;
s.erase(0, 2);//c111defg
cout << s << endl;
}
je
nt main(void) {
//test01();
//test03();
//test04();
//test05();
//test06();
//test07();
//test08();
test09();
return 0;
}