介绍:
string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。<string.h>
是 C 语言标准库中的头文件,提供了许多字符串操作相关的函数。下面是一些常用的 <string.h>
中的函数:
strlen()
:计算字符串的长度(不包括结尾的空字符 '\0')。strcpy()
:将一个字符串复制到另一个字符串中。strncpy()
:将指定长度的一个字符串复制到另一个字符串中。strcat()
:将一个字符串连接到另一个字符串的末尾。strncat()
:将指定长度的一个字符串连接到另一个字符串的末尾。strcmp()
:比较两个字符串是否相等。strncmp()
:比较指定长度的两个字符串是否相等。strstr()
:在一个字符串中搜索指定子字符串的第一次出现。strchr()
:在一个字符串中搜索指定字符的第一次出现。strrchr()
:在一个字符串中搜索指定字符的最后一次出现。strstr()
:在一个字符串中搜索指定子字符串的第一次出现位置。strtok()
:将一个字符串分割为多个子字符串(标记)。
除了上述函数之外,<string.h>
还提供了其他一些用于字符串处理的函数。
案例一:
#define _CRT_SECURE_NO_WARNINGS // 添加宏定义来禁用 CRT 函数的警告
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Beijing";
strcpy_s(str, sizeof(str), "China");
printf("%zu\n", strlen(str));
return 0;
}
以下程序运行后的输出结果是:5
解析:调用 strcpy 函数将字符串 "China" 复制到字符数组 str 中。函数 strcpy 将返回其第一个参数的地址,即复制后的字符数组的起始地址。因此,原来的 "Beijing" 被替换为 "China",调用 strlen 函数计算复制后的字符串长度。由于 "China" 的长度为 5,所以 strlen 返回值为 5。
案例二:
#include <stdio.h>
#include <string.h>
int main() {
char a[] = {'\1', '\2', '\3', '\4', '\0'};
printf("%d %d\n", sizeof(a), strlen(a));
return 0;
}
以下程序运行后的输出结果是:5,4
解析:数组 a 的大小为 5,包括了字符 \1、\2、\3、\4 和一个字符串结束符 \0。由于 \0 是字符串的结束符,不会被 strlen 函数计算在内,所以 strlen(a) 返回的结果是 4。
案例三:
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "\tab\n\012\\\"";
printf("%d\n", strlen(str));
return 0;
}
以下程序运行后的输出结果是:7
解析:\t表示水平制表符(Tab),\n表示换行符,\012表示八进制数值12对应的字符(垂直制表符),\\表示反斜杠自身,\"表示双引号自身,a和b各代表1。
运行该代码会输出 7,表示字符串 str 的长度为7个字符(不包括末尾的空字符 \0)。