C 教程

C 教程 C 语言简介 C 下载安装和环境配置 C 快速入门 C 语法 C 输出 C 注释 C 变量 C 数据类型 C 常量 C 运算符 C 布尔值 C If...Else 语句 C Switch 语句 C While 循环 C For 循环 C Break/Continue 语句 C 数组 C 字符串 C 用户输入 C 内存地址 C 指针

C 函数

C 函数 C 函数参数 C 作用域 C 函数声明 C 递归 C 数学函数

C 文件

C 创建文件 C 写入文件 C 读取文件

C 结构体

C 结构体 C 嵌套结构体 C 结构体和指针 C 联合体 C typedef

C 枚举

C 枚举

C 内存

C 内存管理

C 错误

C 错误 C 调试 C 空值 C 错误处理 C 输入验证

C 更多

C 日期 C 随机数 C 宏 C 代码组织 C 存储类 C 位运算符 C 固定宽度整数

C 项目

C 项目

C 参考资料

C 参考资料 C 关键词 C <stdio.h> C <stdlib.h> C <string.h> C <math.h> C <ctype.h> C <time.h>

C 标准库参考

C 标准库 - 参考手册 C 标准库 - <assert.h> C 标准库 - <ctype.h> C 标准库 - <errno.h> C 标准库 - <float.h> C 标准库 - <limits.h> C 标准库 - <locale.h> C 标准库 - <math.h> C 标准库 - <setjmp.h> C 标准库 - <signal.h> C 标准库 - <stdarg.h> C 标准库 - <stddef.h> C 标准库 - <stdio.h> C 标准库 - <stdlib.h> C 标准库 - <string.h> C 标准库 - <time.h>

C 实例

C 语言实例 C 经典100例 C 编译器 C 测验


C 字符串函数

字符串函数

C 语言也提供了许多实用的字符串函数,可用于对字符串执行特定操作。

要使用这些函数,必须在程序中包含 <string.h> 头文件。

#include <string.h>

字符串长度

例如,要获取字符串的长度,可以使用 strlen() 函数:

示例

char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%zu", strlen(alphabet));
亲自试一试 »

在字符串章节中,我们使用sizeof来获取字符串/数组的大小。请注意,sizeof和strlen的行为有所不同,因为sizeof在计数时还会包含\0字符。

示例

char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%zu", strlen(alphabet));   // 26
printf("%zu", sizeof(alphabet));   // 27
亲自试一试 »

另外需要注意的是,sizeof 函数始终返回内存占用大小(以字节为单位),而不是字符串的实际长度。

示例

char alphabet[50] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%zu", strlen(alphabet));   // 26
printf("%zu", sizeof(alphabet));   // 50
亲自试一试 »

连接字符串

要连接(合并)两个字符串,可以使用 strcat() 函数:

示例

char str1[20] = "Hello ";
char str2[] = "World!";

// 将 str2 与 str1 连接起来(结果存储在 str1 中)
strcat(str1, str2);

// Print str1
printf("%s", str1);
亲自试一试 »

请注意,str1 的大小应该足够大,以便存储两个字符串合并后的结果(在本例中为 20)。


复制字符串

要将一个字符串的值复制到另一个字符串,可以使用 strcpy() 函数:

示例

char str1[20] = "Hello World!";
char str2[20];

// Copy str1 to str2
strcpy(str2, str1);

// Print str2
printf("%s", str2);
亲自试一试 »

请注意,str2 的大小应该足够大,以便存储复制的字符串(在本例中为 20)。


比较字符串

要比较两个字符串,可以使用 strcmp() 函数。

如果两个字符串相等,则返回0,否则返回一个非零值:

示例

char str1[] = "Hello";
char str2[] = "Hello";
char str3[] = "Hi";

// 比较 str1 和 str2,并打印结果
printf("%d", strcmp(str1, str2));  // 返回 0(字符串相等)

// Compare str1 and str3, and print the result
printf("%d", strcmp(str1, str3));  // 返回 -4(字符串不相等)
亲自试一试 »

完整的字符串参考

如需完整的字符串函数参考,请访问C<string.h>库参考。