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 结尾的表示、熟练使用字符串库函数,并时刻注意边界与缓冲区安全。