C 字符串函数


字符串函数

C还有许多有用的字符串函数,可用于对字符串执行某些操作。

要使用它们,您必须包含<string.h>程序中的头文件:

#include <string.h>

字符串长度

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

示例

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

在里面字符串章, 我们用了sizeof获取字符串/数组的大小。注意sizeofstrlen表现不同,如sizeof还包括\0计数时的字符:

示例

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

同样重要的是您知道sizeof将始终返回内存大小(以字节为单位),而不是实际的字符串长度:

示例

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

连接字符串

要连接(组合)两个字符串,您可以使用strcat()功能:

示例

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

// Concatenate str2 to str1 (result is stored in 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如果两个字符串相等,否则值不为 0:

示例

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

// Compare str1 and str2, and print the result
printf("%d\n", strcmp(str1, str2));  // Returns 0 (the strings are equal)

// Compare str1 and str3, and print the result
printf("%d\n", strcmp(str1, str3));  // Returns -4 (the strings are not equal)
亲自试一试 »