Skip to content

20230812 - string

string 定义

  • 使用时需加载头文件 #include <string>

    高版本 cpp 存疑

  • string <ver_name>[ = "hello world"] (其中, "hello world" 字样代表字符串内容)

string 输入

  • 不包含空格/换行符等 (即\S) cin >> <var_name>;

  • 获取 rawString (包含输入的所有内容) getline(cin, <var_name>);

    由于 cin 会把换行符留在缓冲区 stdin, 需要先执行 getline 把换行符干掉 即可
    也可在前运行 fflush(stdin); 清除缓冲区 (stdin)
    获取更多信息, 请参阅 此处

获取 string 长度

  • string.size() // 官方推荐, 不过还是 length 用着舒服

  • string.length()

注意: string 长度比索引最大值大 1

遍历 string

  • 使用循环遍历 0 ~ (string.length() - 1) 即可

复制/拼接 string

  • s1 = s2 // 将 s1 的内容 复制并赋值给 s2

  • s3 = s1 + s2 // 将 s3 赋值为 s1 与 s2 拼接后的结果, s1 在前

比较 string 大小

  • 字符串可以直接通过字典顺序比较

  • ASCII 码中的顺序与字典序相同, 大写较小写字母靠前

  • 比较规则:

    1. 每字符位以上述规则对比
    2. 如果字符串是目标字符串的子列, 即 s1.includes(s2) === true, 那么子列(较短的字符串)比父列小
    3. 空字符串小于任何非空字符串
    4. 字符串长度和对应位置字符均相等时其字符串相等
    5. 长度不相等的非子列字符串比较首个不相等的字符
  • 直接使用 > < == 等关系运算符比较即可