跳到主要内容

串是由字符组成的有限序列。C 语言中字符串通常使用字符数组表示,并以 \0 作为结束标记。

一、字符串定义

char s1[] = "hello";
char s2[6] = {'h', 'e', 'l', 'l', 'o', '\0'};

这两种写法等价。

二、字符串结束符

C 字符串必须以 \0 结尾,否则标准字符串函数无法判断结束位置。

h e l l o \0

三、常用函数

函数作用
strlen求字符串长度
strcpy复制字符串
strncpy限长复制
strcat拼接字符串
strcmp比较字符串
strchr查找字符
strstr查找子串

使用字符串函数时要特别注意目标缓冲区大小。

四、常见风险

  • 缓冲区溢出;
  • 忘记 \0
  • 使用未初始化字符数组;
  • strcpy 导致越界;
  • 字符数组和字符指针混淆。

五、安全建议

  • 明确传入缓冲区长度。
  • 优先使用限长函数。
  • 初始化数组。
  • 拼接前检查剩余空间。
  • 不直接信任外部输入。

六、练习

  • 实现 strlen
  • 实现字符串反转。
  • 判断回文串。
  • 查找子串位置。
  • 统计每个字符出现次数。