string的部分总结

来自洛谷题解https://www.luogu.org/blog/co2021/solution-p1032

1.读入空格

getline(cin,a); //可以读入空格

2.c_str()

int main()
{
    char c[20];
    string s = "12345456";
    strcpy_s(c, s.c_str());
    cout << c << endl;
    cout << c[3];
    //printf("%s", s.c_str());
    getchar();
    getchar();
    return 0;
}
int main()
{
    
    string s = "12345456";
    const char *c = s.c_str();
    cout << c << endl;
    cout << c[3];
    //printf("%s", s.c_str());
    getchar();
    getchar();
    return 0;
}

 

3.插入 insert

str.insert(k,str2),在第k个位置插入字符串str2。

4.删除 erase

str.erase(k,num) 删除第k个字符开始的num个字符。

5.替换 replace

str.replace(k,num,str2); 把从第k个字符开始的2个字符替换为str2字符串。

string s = "12345456";
s.replace(0, 2, "as");
cout << s; //结果为as345456

6.find

str.find(str2)  //返回字符串str中str2第一次出现的位置

str.find(str2,k)  //从k开始寻找在str中str2出现的位置

rfind是倒着找,例如:下例输出为7

int main()
{
    
    string s = "1200345456";
    int k=s.rfind("45");
    cout << k << endl;
    cout << s;
    //printf("%s", s.c_str());
    getchar();
    getchar();
    return 0;
}

 find_first_of(c,k)//从前向后找

find_last_of(c,k)//从后向前找  从k开始找,找字符c,找到返回,匹配失败返回npos

find_first_not_of()

str.find_last_not_of(str2,k)   在str中搜索str2中没有的字符,并返回找到的第一个的位置。

7.substr()

substr(begin,end)  //若end省略,则代表到结尾

str="sdnsaddfl amsdlk";

str.substr(0,3);//就是从下标0到3 即sdn

8.

 

posted @ 2019-08-18 23:27  阳光中的影子  阅读(143)  评论(0编辑  收藏  举报