模拟实现字符串函数

一、Strlen函数(头文件string.h)

1.Strlen函数介绍

以上是strlen在MSDN中的用法提示。

Strlen函数用于统计字符串长度(在检测到'\0'时停止,统计数据不包含'\0')

注:笔者经常把strlen与sizeof搞混,strlen作用于字符串,sizeof是操作符,返回一个对象或类型所占的内存字节数)

2.Strlen函数模拟实现

计数器法

#include<stdio.h>//Strlen函数模拟实现

int my_Strlen(char* p)
{
	int count = 0;
	while (*p != '\0')
	{
		count++;
		p++;
	}
	return count;
}
int main()
{
	char arr[]="abcdef";
	int ret = my_Strlen(arr);//传入数组首地址,Strlen函数会自动寻找到'\0'
	printf("%d\n", ret);
	return 0;
}

指针法

#include<stdio.h>//指针法实现Strlen函数
int my_Strlen(char arr[])
{
	char* left = arr;//注意,类型为char*
	char* right = arr;
	
		while (*right!='\0')//如若right没扫描到'\0',right向后移动
		{
			right++;
		}
	return right-left;//指针减指针返回两个指针之间的元素数目
}
int main()
{
	char arr[] = "abcdef";
	int ret = my_Strlen(arr);
	printf("%d\n", ret);
	return 0;
}

递归方法

#include<stdio.h>


int my_Strlen(char *p)
{
	
	if (*p != '\0')
	{
		return 1 + my_Strlen(++p);//
	}
	else return 0;

}

int main()
{
	char arr[] = "abcdef";
	int ret = my_Strlen(arr);
	printf("%d\n", ret);
	return 0;
}

二、Strcmp函数(头文件string.h)

1.Strcmp函数介绍

(逐个比较两个字符串元素的大小)

Strcmp函数用于比较两个字符串的大小,返回值如下所示

2.模拟实现Strcmp函数

#include<stdio.h>
int my_Strcmp(char* dest, char* src)
{
	while ((*dest == *src) && (*dest != '\0'))//逐个比较元素
	{
		dest++;
		src++;
	}
	return *dest - *src;
}
int main()
{
	char arr1[] = "abcdef";
	char arr2[] = "ffffffff";
	if(my_Strcmp(arr1, arr2) > 0)
	{
		printf("arr1比arr2大\n");
	}
	if(my_Strcmp(arr1, arr2) < 0)
	{
		printf("arr1比arr2小\n");
	}
	if(my_Strcmp(arr1, arr2) == 0)
	{
		printf("arr1与arr2大小相等\n");
	}
	return 0;
}

 

今晚就到这里啦,明天会继续更新库函数的模拟实现,大家晚安。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值