网站建设主要包括前台和后台域名对网站有什么影响
网站建设主要包括前台和后台,域名对网站有什么影响,此网站不支持下载视频怎么办,wordpress popular posts怎么用文章目录一. string类的定义方式二. string的数据插入与拼接三. string的删除四. string的查找六. string的比较七. string的替换八. string的大小和容量十. string中元素的访问一. string类的定义方式 string类实现了多个构造函数的重载#xff0c;常用的构造函数如下#x…文章目录一. string类的定义方式二. string的数据插入与拼接三. string的删除四. string的查找六. string的比较七. string的替换八. string的大小和容量十. string中元素的访问一. string类的定义方式string类实现了多个构造函数的重载常用的构造函数如下//无值构造string();//传常量字符串的构造string(constchar*s);//拷贝构造string(conststringstr);//部分拷贝构造pos表示开始拷贝的位置npos表示要拷贝的个数string(conststringstr,size_t pos,size_t lennpos);//构造一个带有n个c的字符串string(size_t n,charc);//拷贝常量字符串的前n个值string(constchar*s,size_t n);使用示例//无值构造stringstr1();//传常量字符串构造stringstr2(abcdef);//拷贝构造stringstr3(str2);//部分拷贝构造从pos为2的位置开始拷贝拷贝三个值stringstr4(str3,2,3);//生成10个a字符的字符串stringstr5(10,a);//拷贝常量字符串的前三个值stringstr6(abcdefg,3);二. string的数据插入与拼接1. 使用push_back()进行尾插void push_back(char c)#includeiostream#includestringusingnamespacestd;intmain(){string str;str.push_back(a);str.push_back(b);str.push_back(c);str.push_back(d);str.push_back(e);coutstrendl;return0;}2. 使用insert插入string insert (size_t pos, const string str);string insert (size_t pos, const char* s);#includeiostream#includestringusingnamespacestd;intmain(){stringstr1(aaaaa);//string insert (size_t pos, const string str);//在pos的位置插入字符串stringtmp(cc);str1.insert(2,tmp);coutstr1endl;stringstr2(admin);//string insert (size_t pos, const char* str)// 在pos的位置插入常量字符串str2.insert(1,c);coutstr2endl;return0;}3. 使用操作符进行尾插string operator (const string str);string operator (const char* s);string operator (char c);#includeiostream#includestringusingnamespacestd;intmain(){//string operator (const string str);//拼接一个string类型的字符串stringstr1(admin);stringstr2(three);str2str1;coutstr2endl;//string operator (const char* s);//拼接一个常量字符串stringstr3(admin);str3wsnd;coutstr3endl;//string operator (char c);//拼接一个字符stringstr4(admin);str4A;coutstr4endl;return0;}4. 使用append函数完成string的尾插string append (const string str);string append (const char* s);string append (size_t n, char c);#includeiostream#includestringusingnamespacestd;intmain(){strings1(C);strings2( is);//string append (const string str);//使用append拼接s1,s2两个string类字符串s1.append(s2);//string append(const char* s);//拼接一个常量字符串s1.append( best language);//string append (size_t n, char c);//拼接n个字符s1.append(5,!);couts1endl;return0;}使用操作符来拼接string对象string operator (const string lhs, const string rhs);string operator (const string lhs, const char* rhs);string operator (const char* lhs, const string rhs);string operator (const string lhs, char rhs);string operator (char lhs, const string rhs);#includeiostream#includestringusingnamespacestd;intmain(){stringstr(abcde);coutstrwsndendl;return0;}三. string的删除1. 使用pop_back()进行尾删void pop_back();#includeiostream#includestringusingnamespacestd;intmain(){strings1(C);s1.pop_back();s1.pop_back();couts1endl;return0;}2. 使用erase()进行删除string erase (size_t pos 0, size_t len npos);#includeiostream#includestringusingnamespacestd;intmain(){strings1(C);s1.erase(1,2);couts1endl;return0;}四. string的查找1. 使用find函数的正向查找size_t find (const string str, size_t pos 0) const;size_t find (const char* s, size_t pos 0) const;size_t find (char c, size_t pos 0) const;#includeiostream#includestringusingnamespacestd;intmain(){strings1(http://www.cplusplus.com/reference/string/string/find/);strings2(:);//size_t find (const string str, size_t pos 0) const;//正向搜索与string对象所匹配的第一个位置pos是开始查找的位置size_t poss1.find(s2);coutposendl;//size_t find (const char* s, size_t pos 0) const;//正向搜索与常量字符串所匹配的第一个位置pos是开始查找的位置size_t poss1.find(www);coutposendl;//size_t find (char c, size_t pos 0) const;//正向搜索与字符所匹配的第一个位置pos是开始查找的位置size_t poss1.find(/,pos);coutposendl;return0;}2. 使用rfind的反向查找size_t rfind (const string str, size_t pos npos) const;size_t rfind (const char* s, size_t pos npos) const;size_t rfind (char c, size_t pos npos) const;#includeiostream#includestringusingnamespacestd;intmain(){strings1(http://www.cplusplus.com/reference/string/string/find/);strings2(:);//size_t find (const string str, size_t pos 0) const;//反向搜索与string对象所匹配的第一个位置pos是开始查找的位置size_t poss1.rfind(s2);coutposendl;//size_t find (const char* s, size_t pos 0) const;//反向搜索与常量字符串所匹配的第一个位置pos是开始查找的位置size_t poss1.rfind(www);coutposendl;//size_t find (char c, size_t pos 0) const;//反向搜索与字符所匹配的第一个位置pos是开始查找的位置size_t poss1.rfind(/,pos);coutposendl;return0;}六. string的比较使用compare函数完成比较int compare (const string str) const;int compare (const char* s) const;比较规则1、比较字符串中第一个不匹配的字符值较小或者所有比较字符都匹配但比较字符串较短则返回小于0的值。2、比较字符串中第一个不匹配的字符值较大或者所有比较字符都匹配但比较字符串较长则返回大于0的值。3、比较的两个字符串相等则返回0。#includeiostream#includestringusingnamespacestd;intmain(){strings1(abcd);strings2(abcd);//int compare (const string str) const;couts1.compare(s2)endl;//int compare (const char* s) const;couts1.compare(abcd)endl;return0;}七. string的替换使用replace函数完成替代string replace (size_t pos, size_t len, const string str);string replace (size_t pos, size_t len, const char* s);#includeiostream#includestringusingnamespacestd;intmain(){strings(hello word);//string replace (size_t pos, size_t len, const char* s);//将对应位置的替换成常量字符串s.replace(6,4,qqwuai);//string replace (size_t pos, size_t len, size_t n, char c);//将对应位置的替换成指定的string对象stringtmp(!!!);s.replace(12,1,tmp);coutsendl;return0;}八. string的大小和容量1. 获取当前string对象的长度size_t size() const;size_t length() const;#includeiostream#includestringusingnamespacestd;intmain(){stringstr(qqwuai);coutstr.size()endl;coutstr.length()endl;return0;}2. 获取分配到的内存大小size_t capacity() const;#includeiostream#includestringusingnamespacestd;intmain(){stringstr(qqwuai);coutstr.capacity()endl;return0;}3. 使用resize改变当前对象的有效字符的个数void resize (size_t n);void resize (size_t n, char c);resize规则1、当n大于对象当前的size时将size扩大到n扩大的字符为c若c未给出则默认为’\0’。2、当n小于对象当前的size时将size缩小到n。#includeiostream#includestringusingnamespacestd;intmain(){stringstr(qqwuai);//void resize (size_t n);//使用resize函数不指定填充的字符默认用\0填充str.resize(10);coutstr.size()endl;coutstr.capacity()endl;//void resize (size_t n, char c);//使用resize函数并指定填充的字符string str2;str2.resize(10,a);coutstr2.size()endl;coutstr2.capacity()endl;coutstr2endl;return0;}5. 使用reserve改变当前对象的容量大小void reserve (size_t n 0);reserve规则1、当n大于对象当前的capacity时将capacity扩大到n或大于n。2、当n小于对象当前的capacity时什么也不做。#includeiostream#includestringusingnamespacestd;intmain(){strings(CSDN);coutsendl;//CSDNcouts.size()endl;//4couts.capacity()endl;//15//reverse(n)当n大于对象当前的capacity时将当前对象的capacity扩大为n或大于ns.reserve(20);coutsendl;//CDSNcouts.size()endl;//4couts.capacity()endl;//31//reverse(n)当n小于对象当前的capacity时什么也不做s.reserve(2);coutsendl;//CDSNcouts.size()endl;//4couts.capacity()endl;//31return0;}6. 使用clear删除对象的内容void clear();#includeiostream#includestringusingnamespacestd;intmain(){strings(CSDN);//clear()删除对象的内容该对象将变为空字符串s.clear();coutsendl;//空字符串return0;}使用empty函数判空bool empty() const;#includeiostream#includestringusingnamespacestd;intmain(){strings(CSDN);couts.empty()endl;//0//clear()删除对象的内容该对象将变为空字符串s.clear();couts.empty()endl;//1return0;}十. string中元素的访问1. []下标因为string类对[ ]运算符进行了重载所以我们可以直接使用[ ]下标访问对象中的元素。并且该重载使用的是引用返回所以我们可以通过[ ]下标修改对应位置的元素。char operator[] (size_t pos);const char operator[] (size_t pos) const;#includeiostream#includestringusingnamespacestd;intmain(){strings(CSDN);//[]下标访问对象元素for(size_t i0;is.size();i){couts[i];}coutendl;//[]下标修改对象元素内容for(size_t i0;is.size();i){s[i]x;}coutsendl;//xxxxreturn0;}2. 使用范围for访问对象中的元素需要特别注意的是若是需要通过范围for修改对象的元素则用于接收元素的变量e的类型必须是引用类型否则e只是对象元素的拷贝对e的修改不会影响到对象的元素。#includeiostream#includestringusingnamespacestd;intmain(){stringstr(abcdefg);for(autoe:str){ea;}for(autoe:str){couteendl;}return0;}使用迭代器访问不同容器有自己对应的迭代器类型声明格式容器类型::iterator 迭代器名;// 普通迭代器可读可写容器类型::const_iterator 迭代器名;// 常量迭代器只读不能修改元素使用方法#includeiostream#includestringusingnamespacestd;intmain(){stringstr(abcde);string::iterator itstr.begin();while(it!str.end()){cout*itendl;it;}}