企业网站查询系统官网,1元网站建设精品网站制作,中铁建设集团有限公司中标项目,怎么做移动端的网站STL容器——String容器
基本概念
string是c风格的字符串#xff0c;不同于c语言的char*#xff0c;本质是一个类
char*是一个指针#xff0c;string是一个类#xff0c;内部封装了char *来管理字符串#xff0c;是一个char型的容器
特点#xff1a;内部封装了查找f…STL容器——String容器基本概念string是c风格的字符串不同于c语言的char*本质是一个类char*是一个指针string是一个类内部封装了char *来管理字符串是一个char型的容器特点内部封装了查找find,拷贝copy删除delete替换repalce插入insertstring构造函数四种函数原型string()创建一个空的字符串string(const char* s)使用字符串s初始化string(const string str)使用一个string对象初始化另一个string对象string(int n,char c)使用n个字符c初始化voidtest1(){string s1;constchar*str叶落 秋白;strings2(str);//使用字符串s初始化couts2: s2endl;strings3(s2);//使用一个string对象初始化另一个string对象strings4(10,w);couts4 s4endl;}string赋值操作赋值的函数原型string operator (const char* s) //char类型字符串 赋值给当前的字符串string operator (const string s) //把字符串s赋给当前的字符串string operator (char c) //把字符赋值给当前的字符串string assign(const char s) //把字符串s赋值给当前的字符串string assign(const char*s,int n) //把字符串s的当前n个字符赋给当前的字符串string assign(const string s) //把字符串s赋给当前字符串string assign(int n,char c) //用n个字符c赋给当前字符串voidtest2(){string str1;str1叶落秋白;coutstr1str1endl;string str2;str2str1;coutstr2str2endl;string str3;str3c;coutstr3str3endl;string str4;str4.assign(hello c);coutstr4str4endl;string str5;str5.assign(hello c#,5);coutstr5str5endl;string str6;str6.assign(str5);coutstr6str6endl;string str7;str7.assign(6,w);coutstr7str7endl;}string拼接操作在末尾拼接字符串函数原型string operator(const char* str) 重载操作符string operator(const char c) 重载操作符string operator(const string str) 重载操作符string append(const char* s) 把字符串s连接到当前字符串结尾string append(const char* sint n) 把字符串s的前n个字符连接到当前字符串的结尾string append(const string s) 同operator(const string str)string append(const string s,int pos,int n) 把字符串s中从pos开始的n个字符连接到字符串结尾voidtest3(){string str1红豆;str1忆相思;coutstr1str1endl;str1?;coutstr1str1endl;string str2yyds;str1str2;coutstr1str1endl;string str3You;str3.append(low);coutstr3str3endl;str3.append(wuwuwu qaq,4);coutstr3str3endl;str3.append(str2);coutstr3str3endl;str3.append(str2,0,1);coutstr3str3endl;}初学者只需要稍微记几个拼接函数即可string查找替换函数原型查找s第一次出现位置,从pos开始查找int find(const string str, int pos 0) const; int find(const char* s , int pos 0) const;从pos位置查找s的前n个字符第一次位置int find( const char* s, int pos, int n) const;查找字符c第一次出现位置int find(const char c, int pos e) const;查找str最后一次位置,从pos开始查找int rfind(const string str, int pos npos) const;查找str最后一次位置,从pos开始查找,计数永远是从前往后int rfind(const char* s, int pos npos) const;从pos查找s的前n个字符最后一次位置int rfind(const char* s, int pos int n) const;查找字符c最后一次出现位置int rfind(const char c, int pos - e) const;替换从pos开始n个字符为字符串strstring replace(int pos, int n, const string str);替换从pos开始的n个字符为字符串sstring replace(int pos int n,const char* s );示例voidtest4(){string str1abcdefgh;//找到返回下标找不到返回-1intpos1str1.find(def);coutpos1pos1endl;intpos2str1.find(s);coutpos2pos2endl;pos1str1.rfind(ab);//从右往左找到第一个出现从左往右计数coutpos1pos1endl;;}//替换voidtest5(){string str2abcdef;str2.replace(1,2,1111);//从1号位置起2个字符替换为1111coutstr2str2endl;}String字符串比较函数原型int compare(const string s) const;int compare(const char* s) const;使用示例string str1“zello”;string str2“hello”;if(str1.compare(str2)0){cout“相等”endl;}elseif(str1.compare(str2)0){cout“str1大”endl;}else{cout“str2大”endl;}String 字符的存取string 中单个字符存取方式有两种char operator[](int n);通过[]方式取字符char at(int n);通过at方法获取字符string strHello;for(inti0;istr.size();i){coutstr[i] ;}for(inti0;istr.size();i){coutstr.at(i) ;}修改单个字符以下两种方法都可。str[0]W;str.at(1)W;string插入和删除函数原型string insert(int pos,const cahr* s);//在n位置插入字符串string insert(int pos,const string s);//在n位置插入字符串string insert(int pos,int n,char c);//在指定位置插入n个字符cstring erase(int pos,int n npos);//删除从pos位置开始的n个字符string str“hello”;//插入str.insert(1,“111”);coutstr strendl;//删除str.erase(1,3);coutstr strendl;string求子串从字符串中得到想要的子串函数原型string substr(int pos0,int nnpos) const ;//返回由pos位置开始的由n个字符组成的字符串//string求子串voidtest01(){string strabcdef;string subStrstr.substr(1,3);coutsubStrsubStrendl;}//使用操作voidtest02(){string emailylqbqq.com;//从邮箱地址中获取用户名信息intposemail.find();string usrNameemail.substr(0,pos);coutusrNameendl;}tips:灵活的运用求子串功能可以在实际开发中获取有效的信息在上述代码中就可以有效获取到不同邮箱中的用户名。ring subStr str.substr(1, 3);cout “subStr” subStr endl;}//使用操作void test02(){string email “ylqbqq.com”;//从邮箱地址中获取用户名信息int pos email.find(“”);string usrName email.substr(0, pos);cout usrName endl;}**tips:灵活的运用求子串功能可以在实际开发中获取有效的信息在上述代码中就可以有效获取到不同邮箱中的用户名。**