宋敬欢


私信TA

用户名:uq_70411505902

访问量:737

签 名:

我在leetcode刷题不在这里刷

等  级
排  名 7631
经  验 1296
参赛次数 1
文章发表 5
年  龄 19
在职情况 学生
学  校 山东工程职业技术大学
专  业 软件工程

  自我简介:

我在leetcode刷题不在这里刷

解题思路:

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

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

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分

2 人评分

  评论区

  • «
  • »