C++ 字符串快速指南
C 字符串快速指南一、C 风格字符串字符数组以\0结尾的字符数组需要cstring头文件。charstr[]hello;charstr2[6]hello;// 常用函数strlen(str);// 长度strcpy(dest,src);// 复制strcat(dest,src);// 连接strcmp(s1,s2);// 比较二、std::string推荐C 标准库字符串需要 头文件。2.1 初始化string s1;// 空字符串string s2hello;// hellostrings3(5,a);// aaaaastring s4s2 world;// hello world2.2 输入输出string s;cins;// 读取到空格停止getline(cin,s);// 读取整行包含空格getline(cin,s,,);// 以逗号为分隔符2.3 常用成员函数操作 代码示例 说明 长度 s.size()/s.length()返回字符个数 判空 s.empty()返回是否为空 首字符 s.front()第一个字符 尾字符 s.back()最后一个字符 追加 sstr追加字符串 追加 s.append(str)追加字符串 追加单字符 s.push_back(c)追加单个字符 插入 s.insert(5,str)在位置5插入 删除 s.erase(5,3)从5开始删3个 删除尾字符 s.pop_back()删除最后一个 清空 s.clear()清空所有内容 替换 s.replace(0,3,new)替换子串2.4 查找操作string shello world hello;s.find(world);// 返回 6s.find(hello,1);// 从位置1开始找返回 12s.rfind(hello);// 从右向左找返回 12s.find_first_of(aeiou);// 返回 1e的位置s.find_first_not_of(hel);// 返回 3第一个不是h/e/l的字符s.find_last_of(aeiou);// 从右找元音// 判断是否找到if(s.find(world)!string::npos){cout找到了endl;}2.5 截取子串string shello world;string sub1s.substr(6);// world从6到结尾string sub2s.substr(0,5);// hello从0取5个string sub3s.substr(6,3);// wor2.6 遍历方法string shello;// 下标遍历for(size_t i0;is.size();i){couts[i];}// 范围 forfor(charc:s){coutc;}// 迭代器for(autoits.begin();it!s.end();it){cout*it;}三、完整示例代码#includeiostream#includestring#includecstring#includesstream#includevectorusingnamespacestd;intmain(){// string 基本操作string shello;s world;coutsendl;// hello world// 查找if(s.find(world)!string::npos){cout找到了endl;}// 截取string subs.substr(6,5);// worldcoutsubendl;// 数值转换intnumstoi(123);string numStrto_string(num);// 遍历for(charc:s){coutc ;}coutendl;return0;}