文章目录
  1. 1. 本期专题
    1. 1.1. 认识STL std::string
    2. 1.2. C string函数库
  2. 2. 实例剖析

本期专题

  • 字符串中包含有’\0’字符

认识STL std::string

  • size() 函数返回字符串大小,包括’\0’在内.
  • length() 大多数情况下与size()返回相同,具体返回值依赖实作STL实现.
  • c_str() 返回C语言字符串,以’\0’结尾. 切记:如果字符串中间存在’\0’,会存在截断.
  • data() 返回内部缓冲区首地址. 大多数与c_str()返回地址相同,具体返回值依赖实作STL实现.

C string函数库

  • strlen 计算const char* 字符串长度,以’\0’作结束判断.

实例剖析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
std::string s1 = "abcdef";
assert(s1.size() == 6);
assert(s1.length() == 6);
assert(strlen(s1.c_str()) == 6);

std::string s2 = "abc\0def";
assert(s2.size() == 3);
assert(s2.length() == 3);
assert(strlen(s2.c_str()) == 3);

std::string s3("abc\0def", 7);
assert(s3.size() == 7);
assert(s3.length() == 7);
assert(strlen(s3.c_str()) == 3);
文章目录
  1. 1. 本期专题
    1. 1.1. 认识STL std::string
    2. 1.2. C string函数库
  2. 2. 实例剖析