教你如何快速建站,上海做网站设计公司,公益网站怎么做,做我女朋友的网站目录 string的概念
string的基本操作
创建
输入
编辑
获取长度
迭代器
begin#xff08;#xff09;和end#xff08;#xff09;
尾插函数
和运算
尾删pop_back()
insert()插入
find查找
substr()
关系运算
字符串和int 值的转换。 string的概念
string…目录string的概念string的基本操作创建输入编辑获取长度迭代器begin和end尾插函数和运算尾删pop_back()insert()插入find查找substr()关系运算字符串和int 值的转换。string的概念string是c专门创建的字符串类型为了方便操作字符串。string中很多的方法。string的基本操作首先要包含头文件string.创建有初始化的创建它的末尾不以\0为结尾。#include iostream #includestring using namespace std; int main() { string ahello world; //string a(hello world); couta; return 0; }string可以直接赋值#include iostream #includestring using namespace std; int main() { string a; string b(hello world); ab; couta; return 0; }输入cin输入不能输入空格#include iostream #includestring using namespace std; int main() { string a; cina; couta; return 0; }getline是c标准函数读取一行文本存储为字符。istreamgetlineistream isstringstr遇到\n停止。#include iostream #includestring using namespace std; int main() { string a; getline(cin,a); couta; return 0; }istreamgetlineistream isstringstrchar delim直到遇到delim字符停止#include iostream #includestring using namespace std; int main() { string a; getline(cin,a,m);//读到m停止 couta; return 0; }获取长度sizestring有很多函数用 . 使用#include iostream #includestring using namespace std; int main() { string b; string aabcd; string cabcdefg; string dj k l l l; couta.size()endl; coutb.size()endl; coutc.size()endl; coutd.size()endl; return 0; }string的数据也有下标和正常创建的字符数组一样从0开始。迭代器用来遍历容器元素。iterator类似指针数组下标。需要*解引用。begin和endbegin指向第一个位置end指向最后的下一个位置不存在于字符串。可以比较大小加减。#include iostream #includestring using namespace std; int main() { string ahello world; string::iterator it1a.begin(); string::iterator it2a.end(); if(it1it2) coutendl; else coutendl; return 0; }可以通过*解引用输出存储的字符。#include iostream #includestring using namespace std; int main() { string ahello world; string::iterator it1a.begin(); string::iterator it2a.end(); cout*it1endl;//[0] it1; cout*it1endl;//[1] it1--; cout*it1endl;//[0] return 0; }使用迭代器遍历。#include iostream #includestring using namespace std; int main() { string aabcdef; string::iterator it1a.begin(); string::iterator it2a.end(); for (string::iterator i a.begin(); i ! a.end(); i) { cout *i; } coutendl; for(auto iit2-1;iit1;--i){ cout*i; } return 0; }还有反向迭代器reverse_iterator 类型的rbeginrend刚好相反。尾插函数a.push_back();在字符串尾部插入字符#include iostream #includestring using namespace std; int main() { string aabcdef; coutaendl; a.push_back(g); coutaendl; return 0; }和运算也可以头部拼接。尾删pop_back()空的情况下删除会报错。insert()插入a.insert(pos , str)在a字符串中的pos位置前插入str字符串。str可以是string类型的内容可以是字符串如下图。a.insertposnstr插入n个str的字符到pos前。#include iostream #includestring using namespace std; int main() { string aabcdef; coutaendl; a.insert(3,6); coutaendl; return 0; }find查找a.find返回第一次出现的位置。它的返回值是size_t相当于下标a.findstr位置默认0#include iostream #includestring using namespace std; int main() { string aabcdef abc def l g k; string bde; string cl; size_t ta.find(b); couttendl; couta.find(b,t1)endl; return 0; }a.findchar*size_t pos;可以查找c风格的字符串。a.findstrsize_t pos ,n)a字符串中查找str前n给字符也可以找字符。str找不到会放回-1无符号整型的-1。2^32-1;substr()a.substr(pos,lennpos);pos截取的开始npos截取的长度。pos默认为0npos默认到字符串末尾的长度。用于截取a字符串pos位置开始n个的字符。#include iostream #includestring using namespace std; int main() { string aabcdefghi; string ba.substr(3,3); string ca.substr(3); coutbendl; coutcendl; return 0; }关系运算至少有一个str的字符才可以比较比较的ascii值对应位置。#include iostream #includestring using namespace std; int main() { string aabcdefghi; string babcdefghi; if(ab) coutendl; string cabcdefgh; if(a!c) cout!endl; string db; if(ad) coutendl; string eaa; if(ae) coutendl; return 0; }字符串和int 值的转换。stoi/stol,stol是int stol是long int。int stoi(str,size_t* idx0,int base0)long stol(str,size_t* idx0,int base0)str是string类型的字符串。idx是一个指针从idx位置开始到第一个无法匹配的下标返回如“123q”返回q的位置base表示被解析的数字的进制2表示被解析的数字当作2进制数字转化为10进制。0是自动推到如0x是160是8#include iostream #includestring using namespace std; int main() { string a123p; size_t t0; int bstoi(a,t,10); int cstoi(a,t,8); coutbendl; coutcendl; return 0; }stod转化为doublestof转化为floatstodstrsize_t* idx;只有10进制。stofstrsize_t* idx;to_string把数字转换为字符串。