C 字符串函数
字符串函数
C 语言也提供了许多实用的字符串函数,可用于对字符串执行特定操作。
要使用这些函数,必须在程序中包含 <string.h> 头文件。
#include <string.h>
字符串长度
例如,要获取字符串的长度,可以使用 strlen() 函数:
在字符串章节中,我们使用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>库参考。

