C++面试算法题之必备技能!字符串的万能函数!

相信不少同学们遇到面试的算法题时,一遇到字符串类型的题目就头疼!!

毕竟输入输出都成困难,长长的字符串如何把它提炼出来有用的呢?

遇到读取遇到换行时中断和遇到空格就中断的字符串该怎么处理呢?

这里推荐几个比较常用的函数和字符串的解题技巧!!



字符串———substr()函数

substr(字符串,截取开始位置,截取长度) //返回截取的字符串
类似于java里的字符串分割函数,算是字符串函数里非常实用的一种
substr(‘Hello World’,2,4) //返回结果为 ‘ello’
substr(‘Hello World’,-3,3)//返回结果为 ‘rld’ *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符
#include<string>
#include<iostream>
using namespace std;
main()
{
string s("12345asdf");
string a=s.substr(0,5);       //获得字符串s中 从第0位开始的长度为5的字符串//默认时的长度为从开始位置到尾
cout<<a<<endl;
}
输出结果为:
12345




字符串———find()函数

假设我们有字符串a和b,那么a.find(b)是指在a这个字符串中查找b并返回b开头字母的位置,没查到就是-1

    if(s1.find('a')!=-1){

isStingstream用法

可以用在getline读取很长的字符串后使用isstringstream进行分割字符串。

他会自动把空格前和空格后的字符串进行分割,格式也是比较奇特,它本身也是一种数据类型

#include<iostream>
#include<algorithm>
#include<sstream>        //istringstream 必须包含这个头文件#include<string>
using namespace std;
int a[10],cnt=0;
int main()
{
    string str="i am a boy";
    string str1="5 4 3 2 1 6 ";
    istringstream is(str);
    istringstream is1(str1);
    string s;
    while(is>>s)
         cout<<s<<endl;
    while(is1>>a[cnt++]);
    sort(a,a+cnt-1);
    for(int i=0;i<cnt-1;i++)
    {
        cout<<a[i]<<endl;
    }
}



#面经##实习##笔试题目#
全部评论

相关推荐

hwwhwh:同双非,有大厂实习其实也没啥用,主要看运气,等就行了
点赞 评论 收藏
分享
天降大厂offer:想从事前端就放前端的技术栈,然后项目描述,还有项目做了什么内容,使用了什么技术解决了什么问题优化了什么性能。然后头像可以不要,在读也可以不要,还有bg的话就不要放课程,写哪个学校什么本科,还有绩点排名(如果高的话),然后就是技术栈写好一点,接下来就是项目(有实习就写实习,没有就到项目),项目放两个好一点的,自己包装一下,然后有参加什么竞赛放两个就好了,接下来就是靠你自己了,毕竟211还是很难容易找的,不像我们学院本
点赞 评论 收藏
分享
评论
11
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务