C++中字符串的查找与插入方式

📅 2026/8/24 19:06:20
C++中字符串的查找与插入方式
一、字符串查找在一个长字符串中找到需要从子串可以用暴力匹配从长串中第一个字符开始一个个和字串对比能完全对上就是找到了对不上就循环加一。1、用函数加循环查找1234567891011121314intfindsub(conststring s,conststring sub){intns.size(),msub.size();if(mn)return-1;for(inti0;in-m;i){intj0;while(jms[ij]sub[j]){j;}if(jm){returni;}}}2、用string中自带的find1234567891011121314#includebits/stdc.husingnamespacestd;intmain(){string s,sub;//s是主串,sub是要查找的子串cinssub;size_tposs.find(sub);//调用string中自带的find会查找出子串第一次出现的位置返回值类型是size_t(无符号整数专门用来存下标或长度if(pos!string::npos){//stringnpos是定义的常量表示没找到coutposendl;//找到输出下标}else{cout-1endl;//没找到输出-1}return0;}可以用getlin(cin,s)整行读取字符串包括空格二、字符串插入在指定位置加内容把原字符串在指定位置拆成两个部分前部分加上插入内容再加上后半部分。1、用substr把字符串截取字串拼接起来1234567891011#includebits/stdc.husingnamespacestd;intmain(){string s;//原字符串string ins;//要插入的字符串intpos2;//在下标为二的位置上插入新的字符cinsins;string ress.substr(0,pos)inss.substr(pos);//substr从字符串中截取子串s.substr(起始位置截取长度),s.substr(起始位置),不写长度默认到最后coutres;return0;}2、用for循环逐个字符拼接1234567891011121314151617181920#includebits/stdc.husingnamespacestd;intmain(){string s;//原字符串string ins;//要插入的字符串intpos2;//在下标为二的位置上插入新的字符cinsins;string str;for(inti0;ipos;i){strstrs[i];}//原字符前半部分0~pos-1for(inti0;iins.size();i){strstrins[i];}//插入的内容for(intipos;is.size();i){strstrs[i];}//原字符串后半部分pos~结束coutstr;return0;}总结以上为个人经验希望能给大家一个参考