Skip to content

C 字符串

C 字符串以 \0 结尾的字符数组表示。本章介绍定义、常用库函数、输入输出与安全注意事项。

1. 定义与初始化

c
char s1[] = "hello";     // 长度为 6(包含结尾\0)
char s2[10] = "hi";      // 其余补\0
char s3[] = {'o','k','\0'};

2. 常用库函数(string.h)

  • strlen:长度(不含 \0
  • strcpy/strncpy:拷贝
  • strcat/strncat:拼接
  • strcmp/strncmp:比较
  • strchr/strrchr:查找字符
  • strstr:查找子串

3. 格式化输入输出(stdio.h)

c
char buf[32];
sprintf(buf, "%s-%d", "id", 42); // 注意缓冲区大小
printf("%s\n", buf);

更安全的变体(实现相关):snprintf

4. 安全注意事项

  • 始终确保缓冲区足够大
  • 避免 gets(已移除),使用 fgets
  • 处理多字节/宽字符需用 wchar.h 与本地化设置

5. 示例

c
#include <stdio.h>
#include <string.h>

int main(void) {
    char name[16];
    strcpy(name, "Alice");
    printf("Hello %s, len=%zu\n", name, strlen(name));
    return 0;
}

6. 小结

理解以 \0 结尾的表示、熟练使用字符串库函数,并时刻注意边界与缓冲区安全。

本站内容仅供学习和研究使用。