首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【C语言】strlen、strcpy字符串函数详解

【C语言】strlen、strcpy字符串函数详解

作者头像
zore
发布2025-12-30 18:46:07
发布2025-12-30 18:46:07
1310
举报
文章被收录于专栏:C/C++ 专栏C/C++ 专栏

一、字符串函数

1、strlen

(1) 简介

strlen是 C 标准库提供的字符串处理函数,其功能是计算字符串中从起始地址到第一个空字符(’\0’)的字节数

头文件<string.h>

注意:这里的 “长度” 不包含作为字符串结束标志的 ‘\0’。​

代码语言:javascript
复制
size_t strlen ( const char * str );
(2)返回值(易错)

返回值为无符号整数类型 size_t

以下是错误示范:

代码语言:javascript
复制
#include<stdio.h>
#include<string.h>

int main()
{
	if (strlen("abc") - strlen("abcdef") >= 0)
		printf(">=");
	else
		printf("<");


	printf("\n\n");
	return 0;
}

运行结果:

那么 为什么会现这种情况呢? 因为 strlen返回值为无符号整数类型 size_t 而两无符号整数类型相减结果也是无符号整数类型 理论上是远大于0的 所以 要小心使用strlen的返回值

(3)模拟实现strlen函数

模拟函数,自己写一个strlen函数 其中有很多方法 这里我用到了函数递归 使用该方法不引入新变量

代码语言:javascript
复制
#include<stdio.h>

int my_strlen(const char* ch)
{
	if (*ch == '\0')
		return 0;
	else
		return my_strlen(ch + 1) + 1;
}

int main()
{
	char ch[] = "abcdef";
	int sz = my_strlen(ch);

	printf("%d\n\n", sz);

	return 0;
}

运行结果:

在这里插入图片描述
在这里插入图片描述

2、strcpy

(1) 简介

将一个字符串复制到另一个字符串中 头文件<string.h>

代码语言:javascript
复制
char *strcpy(char *dest, const char *src)

dest :指向用于存储复制内容的目标数组。 src : 要复制的字符串。 把 src 所指向的字符串复制到 dest

(2)需要注意的点

另外注意: 1.源字符串必须以 ‘ \0 ’ 结尾。 2.strcpy函数会将 ‘ \0 ’ 拷贝到目标空间。 3.目标空间必须可修改而且要足够大。

(3)演示
代码语言:javascript
复制
#include<stdio.h>
#include<string.h>

int main()
{
	char arr1[100];
	char arr2[] = "abcdrf";

	strcpy(arr1, arr2);
	//arr1是目标数组
	//arr2是被拷贝数组
	printf("%s\n\n", arr1);

	return 0;
}

运行结果:

在这里插入图片描述
在这里插入图片描述
(4) 模拟实现strcpy函数

演示:

代码语言:javascript
复制
#include<stdio.h>
#include<assert.h>

void my_strcpy(char* dist, const char* sour)
{
	assert(dist && sour);
	//用assert断言
	//确保程序符合运行条件
	while (*dist++ = *sour++)
	{
		;
		//此处为空语句
	}
}

int main()
{
	char arr1[100];
	char arr2[] = "abcdrf";

	my_strcpy(arr1, arr2);
	//arr1是目标数组
	//arr2是被拷贝数组
	printf("%s\n\n", arr1);

	return 0;
}

运行结果:

在这里插入图片描述
在这里插入图片描述

二、结语

本期资料来自于

https://legacy.cplusplus.com/

本文有不足之处,希望各位兄弟们能给出宝贵的意见。谢谢大家!!!

新人,希望各位兄弟们能动动小手,三连走一走!!!支持一下(三连必回)

下一期我们讲解strcat、strcmp字符串函数!!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、字符串函数
    • 1、strlen
      • (1) 简介
      • (2)返回值(易错)
      • (3)模拟实现strlen函数
    • 2、strcpy
      • (1) 简介
      • (2)需要注意的点
      • (3)演示
      • (4) 模拟实现strcpy函数
  • 二、结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档