《C++ Primer》读书笔记-第九章 05 额外的string操作

    xiaoxiao2021-03-26  18

    作者:马志峰 链接:https://zhuanlan.zhihu.com/p/24498537 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    声明:

    文中内容收集整理自《C++ Primer 中文版 (第5版)》,版权归原书所有。原书有更加详细、精彩的释义,请大家购买正版书籍进行学习。本文仅作学习交流使用,禁止任何形式的转载

    正文

    构造substr修改搜索比较数值转换

    构造

    string s1; string s2(s1); string s2 = s1; string s3("val"); string s3 = "val"; string s4(n, 'c'); string s{'a', 'b', 'c'}; string s = {'a', 'b', 'c'}; string s(beg,end); string s(n); string s(cp,n); //n可选 string s(s2, pos2); string s(s2, pos2, len2);

    具体可以参与书上的内容,以及下面的网址

    std::basic_string - cppreference.com

    substr

    s.substr(pos, n);

    返回一个string,包含s中从pos开始的n个字符的拷贝

    n的默认值为 s.size()-pos

    pos不能越界,pos+n可以,只拷贝到string末尾

    改变string的其他方法

    顺序容器的assign、insert、erase、赋值操作接受下标的insert和erase版本接受c风格字符数组的insert和assign版本append和replace函数

    具体参考 P323 表9.13

    搜索操作

    返回一个string::size_type类型的值,表示匹配发生位置的下标

    如果搜索失败,返回一个名为string::npos的static成员

    string::size_type是一个unsigned类型,应当避免使用int或其他带符号类型来保存搜索的返回值

    s.find(args) s.find_first_of(args) s.find_first_not_of(args)

    args必须是以下形式这一:

    c, pos //从位置pos开始查找字符c,pos默认为0s2, pos //查找字符串s2,pos默认为0cp, pos //查找c风格字符串,pos默认为0cp, pos, n //查找指针cp指向数组的前n个字符, pos和n无默认值 find----rfind find_first_of----find_last_of find_first_not_of----find_last_not_of

    compare

    s.compare(s2); s.compare(pos1, n1, s2); s.compare(pos1, n1, s2, pos2, n2); s.compare(cp); s.compare(pos1, n1, cp); s.compare(pos1, n1, cp, n2);

    数值转换

    在内存中,数的字符表示不同于其数值

    15:0000000000001111 “15”:0011000100110101

    新标准引入了多个转换函数

    to_string(val); //转换成整数 //p是第一个非数值字符的下标,默认值为0 //b是基数,默认值为10 stoi(s, p, b); stol(s, p, b); stoul(s, p, b); stoull(s, p, b); //转换成浮点 stof(s,p) stod(s,p) stold(s,P)
    转载请注明原文地址: https://ju.6miu.com/read-450194.html

    最新回复(0)