C 标准库 - <string.h>的使用

本文介绍了C语言标准库中的<string.h>头文件,它包含了一系列用于处理字符数组的函数,如strlen计算字符串长度,strcpy复制字符串,strcat连接字符串,以及strcmp进行字符串比较等。文中通过示例代码展示了这些函数的使用方法及其效果。
摘要由CSDN通过智能技术生成
介绍:

       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)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Onlooker﹒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值