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;
    }
}



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

相关推荐

10-05 23:02
东北大学 Java
我说句实话啊:那时候看三个月培训班视频,随便做个项目背点八股,都能说3 40w是侮辱价
点赞 评论 收藏
分享
10-09 22:05
666 C++
找到工作就狠狠玩CSGO:报联合国演讲,报电子烟设计与制造
点赞 评论 收藏
分享
评论
11
12
分享
牛客网
牛客企业服务