解题思路:

这道题 主要考察了字符串函数的使用,在这里我给大家写一下字符串函数的模拟实现,让大家更加理解字符串函数,从而让大家使用的更舒服

首先说一下字符串函数有哪些

1、strlen 求字符串函数的长度

2、strcmp(str1,str2) 比较str1与str2 如果str1 > str2 返回1 如果相等就返回0 否则返回 -1 但是在定义上只是前面的大返回正数 而没有说什么哪一个数

2、strcat(str1,str2) 把str2拼接到str1后面,扫描第一个'\0' 

4、strcpy(str1,str2) 把str2的值拷贝到str1里面去 如果str1的长度不对则抛出异常 



注意事项:

注意一下我写的函数名; 

注意一下这些代码只是帮助大家理解字符串库函数,有些细节为了节约时间 所以没写。

参考代码:

int My_strlen(char arr[])
{
	int len = 0;
	char* p = arr;// 指针P指向数组的开始位置
	while((*p) != '\0')
	{
		len ++;
		p++;
	}
	return len;
}

int My_strcmp(char arr1[], char arr2[])
{
	char* p1 = arr1;
	char* p2 = arr2;
	
	while((*p1) != '\0' && (*p2)!= '\0')
	{
		if(*p1 > *p2)
		{
			return 1;
		}
		else if (*p1 == *p2)
		{
			 return 0;
		}
		else
		{
			return -1;
		}
		p1++;
		p2++;
	}
	if(*p1 == *p2 && *p1 =='\0') return 0;
	if(*p1 == '\0') return -1;
	if(*p2 == '\0') return 1;
}

void My_strcat(char* arr1,char* arr2)
{
	// 这里实现的是和真实的有些区别,就理解一下 从第一个遇到\0后面开始拼接哈 
	char* p1 = arr1,*p2 = arr2;
	while(*p1 != '\0')
	{
		p1++;
	}
	while(*p2 != '\0')
	{
		*p1 ++ = *p2 ++;
	}
	
}

void My_strcpy(char arr1[],char arr2[])
{
	char* p1 = arr1;
	char* p2 = arr2;
	
	do
	{
		*p1 ++ = *p2 ++;
	}while(*p2 != '\0');
}


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论