模拟实现字符串相关函数

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>

//int main()
//{
//	const int num = 10;
//	int* const p = &num;
//	int n = 100;     
//	p = &n;//表达式必须是可修改的左值
//	
//	return 0;
//}

//#include<assert.h>
//
把src指向的内容拷贝放到dest指向的空间中
本质上讲,希望dest指向的内容被修改,src指向的内容不应该被修改
//void my_strcpy(char* dest,const char* src)
加了const如果不小心写反了,写成*src++=*dest++ ,会报错
//{
//	assert(src != NULL);//断言
//	assert(dest != NULL);//断言
//
//	while (*dest++ = *src++)//'\0'的ASCII码值为0,既拷贝了\0,又使得循环停止
//	{
//		;//hello的拷贝
//	}
//}

//#include<assert.h>
把src指向的内容拷贝放到dest指向的空间中
本质上讲,希望dest指向的内容被修改,src指向的内容不应该被修改
strcpy这个库函数 其实返回的是目标空间的起始地址
//char* my_strcpy(char* dest, const char* src)
加了const如果不小心写反了,写成*src++=*dest++ ,会报错
//{
//	assert(src != NULL);//断言
//	assert(dest != NULL);//断言
//	char* ret = dest;
//	while (*dest++ = *src++)//'\0'的ASCII码值为0,既拷贝了\0,又使得循环停止
//	{
//		;//hello的拷贝
//	}
//	return ret;//返回目标空间的起始地址
//}
//int main()                                                
//{
//	char arr1[20] = "xxxxxxxxxxxxxxxxxx";
//	char arr2[] = "helllo\0";
//	my_strcpy(arr1,arr2);//1.目标空间的起始地址,2.源空间的起始地址
//	printf("%s\n", my_strcpy(arr1,arr2));//链式访问
//	return 0;
//}

//int main()
//{
//	char arr[] = "abc";
//	int len = strlen(arr);
//	printf("%d\n", len);
//	return 0;
//}

//strlen 是求字符串长度的
//my_strlen
// 1.const
//2.assert
//3.
//健壮性
//鲁棒性
//

//#include<assert.h>
//int my_strlen(const char* str)
//{
//	assert(str != NULL);
//	//assert(str);
//	int count = 0;
//	while (str!='\0')
//	{
//		count++;
//		str++;
//	}
//	return count;
//}
//int main()
//{
//	char arr[] = "abcdef";
//	int len = my_strlen(arr);
//	printf("%d\n",len);
//	return 0;
//}

//#include<assert.h>
size_t-unsigned int
//size_t my_strlen(const char* str)
//{
//	assert(str != NULL);
//	//assert(str);
//	size_t count = 0;
//	while (str != '\0')
//	{
//		count++;
//		str++;
//	}
//	return count;
//}
//int main()
//{
//	char arr[] = "abcdef";
//	int len = my_strlen(arr);
//	printf("%d\n", len);
//	return 0;
//}

//编程常见错误
//分类
// 
//编译型错误-语法错误,双击错误查看,相对简单
// 
//链接型LNK错误-无法解析的外部符号
// 要么这个符号不存在
// 要么符号写错了
// 
//运行时错误
//借助调试,逐步定位问题,最难搞
//

posted @   morphism  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示