字符函数和字符串函数

1.关于strncpy函数的介绍

1.strncpy是C语言的库函数之一,来自C语言的标准库
定义于string.h,所以在使用该函数的时候需要#include <string.h

2.函数声明
在这里插入图片描述
从图中我们可以知道其返回类型为char* 类型
3.参数的意义

char* strncpy(char* dest,char* src,int size_t

dest-(destination)目的地->就是最终呈现的;目的地,目标数组
src-(source)源头->要复制的字符串
n->要从源头复制的字符数
返回值用来表现其最终形式

2.函数的实现

char* my_strncpy(char* dest,const char* src,int num)
{  
	char* ret=dest;//用来记录开始的地址
	assert(dest!=NULL);//安全性优化
	assert(src!=NULL);
	int i=0;
	for(i=0;i<num;i++)
	{
		*dest=*src;
		dest++;
		src++;
		num--;
		}
		if(num>0)//若n>被拷贝的字符串数目,需要将被拷贝的字符的其他内容用空字符进行补充
		{
			while(n)
			{
			*str++='\0';
			num--;
			}
		}
		return ret;
}

1.关于strncat的介绍

1.同样与strncpy函数相同它也是库函数之一
也需要加上一个#include <string.h>
但是他的作用是拼接,在数组1后加上数组二的内容
2.函数的声明在这里插入图片描述
同样其函数的返回类型是char* 类型

2.函数的模拟实现

char* my_strncat(char* dest,const,char* src,size_t,num)
{
	assert(*dest!=NULL);
	assert(*src!=NULL);
	char* ret=dest;
	for(int i=0;i<num;i++)
	{
		if(*dest!='\0')
		{
			dest++;
		}
	}
	for(int i=0;i<num;i++)
	{
		*dest++=*src++;
		num--;
	}
	if(num>0)
	{
		while(n)
		{
			*src++='\0';
			num--;
		}
	}
	return ret;
}

1.strstr函数的介绍

1.在父字符数组中寻找字符数组中的元素
同样是c语言的库函数之一;
在这里插入图片描述
如图可知其返回类型为char* 类型

2.函数的模拟实现

const char* my_strstr(const char* str1,const char* str2)
{
	assert(str1);
	assert(str2);
	const char*cp=str1;//使用cp来记录可能找到匹配的字符串的起始位置
	const char* s1=NULL;
	const char* s2=NULL;
	if(*str2=='\0')//如果子字符串是空字符串就直接返回str1
		return str1;
	while(*cp)//遍历
	{
		s1=cp;
		s2=str2;
		while(*s1==*s2&&*s1&&*s2)//遍历
		{
			s1++;
			s2++;
		}
		if(*s2=='\0')
		return cp;
		cp++;//当找不到匹配的字符串时要向后检索
	}
	return NULL;如果str1遍历完还找不到返回NULL指针
}
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值