C还有许多有用的字符串函数,可用于对字符串执行某些操作。
要使用它们,您必须包含<string.h>
程序中的头文件:
#include <string.h>
例如,要获取字符串的长度,可以使用strlen()
功能:
在里面字符串章, 我们用了sizeof
获取字符串/数组的大小。注意sizeof
和strlen
表现不同,如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)
亲自试一试 »
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!