C语言字符串
C 语言中的 “string” 并不是一种内建类型,而是一种以 '\0'(null 字符)结尾的字符数组,用来表示字符串。C 语言的字符串处理完全是基于字符数组和标准库函数的组合实现的,理解起来要靠对内存、指针和字符操作的深入掌握。
一、C语言字符串的本质
定义
C 语言的字符串是 一串字符 + 结尾的 '\0'(null 终止符),用于标记字符串的结束。这其实是一个字符数组,相当于:- char str[6] = { 'h', 'e', 'l', 'l', 'o', '\0' };
复制代码 ✅ 存储结构图
字符hello\0下标012345二、定义字符串的几种方式
1. 使用字符数组
- char s1[] = "hello"; // 推荐方式,会自动添加 '\0'
复制代码 2. 使用指针指向字符串常量(只读)
- const char* s2 = "world"; // 指向只读区域,不能修改 *s2
复制代码 3. 自定义字符数组初始化
- char s3[10] = {'h','e','l','l','o','\0'};
复制代码 三、常用字符串处理函数(来自 )
[table][tr]函数功能示例[/tr][tr][td]strlen(s)[/td][td]获取长度(不含\0)[/td][td]strlen("abc") == 3[/td][/tr][tr][td]strcpy(dest, src)[/td][td]拷贝字符串[/td][td]strcpy(a, b);[/td][/tr][tr][td]strncpy(dest, src, n)[/td][td]拷贝 n 字符[/td][td]strncpy(a, b, 5);[/td][/tr][tr][td]strcat(dest, src)[/td][td]拼接字符串[/td][td]strcat(a, b);[/td][/tr][tr][td]strcmp(a, b)[/td][td]比较字符串[/td][td]strcmp("a","b") |