C——实现str函数

模拟实现函数strlen实现计算字符串长度的。#include <stdio.h>#include <string.h>#include <assert.h>//模拟实现strlen()函数//1. 计时器版本//2.递归版本//3.指针 - 指针int my_strlen(const char* ptr){ int count = 0;//计时器 assert(ptr != NULL);//断言 while (*ptr != '\0'
摘要由CSDN通过智能技术生成

模拟实现函数

strlen实现
  • 计算字符串长度的。
#include <stdio.h>
#include <string.h>
#include <assert.h>

//模拟实现strlen()函数
//1. 计时器版本
//2.递归版本
//3.指针 - 指针
int my_strlen(const char* ptr)
{
   
	int count = 0;//计时器

	assert(ptr != NULL);//断言
	while (*ptr != '\0')
	{
   
		count++;
		ptr++;
	}

	return count;
}
int main()
{
   
	char arr[] = "ABCD";
	int ret = strlen(arr);
	printf("%d\n", ret);
	int ret2 = my_strlen(arr);
	printf("%d\n", ret2);

	if (strlen("abc") - strlen("abcdef") > 0)
	{
   
		printf(">");//ok
	}
	else
	{
   
		printf("<=");
	}
	return 0;
}

注意事项

  1. strlen()函数实现,函数的定义的类型,是size_t (无符号)。

原因:长度没有负数的,无符号整数可以是strlen()判断的字符串更长,my_strlen()版本没有考虑到。字符到128个后就会报错。


\0是的ASCII码是全0,字符0的ASCII码是48

strcpy()函数
#include <stdio.h>
#include <string.h>

int main()
{
   
	//模拟strcpy()函数的实现
	char arr0[] = {
    0 };
	char arr1[20] = {
    0 };

	char p[] = "hello";
	strcpy(arr1, p);
	printf("%s\n", arr1);//ok

	char arr2[20] = "#########";
	//strcpy()函数会将\0 ,也拷贝进去。看内存窗口
	char* parr = "#############";
	//strcpy()函数,var1,必须是可以修改的变量。不能是常量字符串。var2随便
	char arr4[5] = "ABCD";
	strcpy(arr4,"hello");
	printf("%s\n", arr4);
	return 0;
}
	char arr[20] = {
    0 };
	*arr = "hello";
	printf("%s\n", arr);//err  打印的是  ?  。
	//一个是常量字符串,是h的地址strcpy()-字符串拷贝函数。

strcat()
#include <stdio.h>
#include <string.h>
#include <assert.h>

char* my_strcat(char* dest,const char* src)
{
   
	char* ch = dest;//这一条是有返回值,才添加的。
	assert(dest && src);
	//1.找到\0
	while
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值