笔记字符函数(自用笔记)

模拟实现字符函数,自己看的。

#include
#include
//size_t my_strlen(char* arr)
//{
//	assert(arr);
//	if (*arr != '\0')
//	{
//		return my_strlen(arr + 1) + 1;
//	}
//}
//int main()
//{
//	char arr1[] = "abcedf";
//	size_t len = my_strlen(arr1);
//	printf("%zd\n", len);
//	return 0;
//}
//size_t my_strlen(char* arr)
//{
//	assert(arr);
//	size_t count = 0;
//	while (*arr != '\0')
//	{
//		count++;
//		arr++;
//	}
//	return count;
//}
//int main()
//{
//	char arr1[] = "abcedf";
//	size_t len = my_strlen(arr1);
//	printf("%zd\n", len);
//	return 0;
//}
//

//size_t my_strlen(char* arr)
//{
//	assert(arr);
//	char* end = arr;
//	while (*++end != '\0')
//	{
//		;
//	}
//	return end - arr;
//}
//int main()
//{
//	char arr1[] = "abcedf";
//	size_t len = my_strlen(arr1);
//	printf("%zd\n", len);
//	return 0;
//}
//void my_strcpy(char* dest,const char* src)
//{
//	assert(dest && src);
//	while (*dest++ = *src++)
//	{
//		;
//	}
//
//}
//int main()
//{
//	char arr1[20] = "xxxxxxxxxx";
//	char arr2[] = "abcde";
//	my_strcpy(arr1, arr2);
//	printf("%s\n", arr1);
//	return 0;
//}
//void my_strcat(char* dest, const char* src)
//{
//	assert(dest && src);
//	while (*dest != '\0')
//	{
//		dest++;
//	}
//	while (*dest++ = *src++)
//	{
//		;
//	}
//}
//int main()
//{
//	char arr1[20] = "abc\0xxxx";
//	char arr2[] = "def";
//	my_strcat(arr1, arr2);
//
//	return 0;
//}


//int my_strcmp(const char* dest, const char* src)
//{
//	assert(dest && src);
//	while (*dest == *src)
//	{
//		if (*dest == '\0')
//			return 0;
//		dest++;
//		src++;
//	}
//	
//	return *dest - *src;
//}
//int main()
//{
//	char arr1[] = "abqde";
//	char arr2[] = "abqxe";
//	int ret = my_strcmp(arr1, arr2);
//	if (ret == 0)
//	{
//		printf("==");
//	}
//	else if (ret > 0)
//	{
//		printf(">");
//	}
//	else
//	{
//		printf("<");
//	}
//	return 0;
//}


const char* my_strstr(const char* dest, const char* src)
{
	assert(dest && src);
	if (*src == '\0')
	{
		return dest;
	}
	char* cp = dest;
	char* s1;
	char* s2;
	while (*cp)
	{
		s1 = cp;
		s2 = src;
		while (*s1 == *s2 && *s1 && *s2)
		{
			s1++;
			s2++;
		}
		if (*s2 == '\0')
			return cp;
		cp++;
	}
	return NULL;
	
 
	
}
#include
int main()
{
	char arr1[] = "abbbcdef";
	char arr2[] = "bbc";
	const char* ret = my_strstr(arr1, arr2);
	printf("%s\n", ret);
	return 0;
}

你可能感兴趣的:(笔记,算法)