
 啊我摔倒了..有没有人扶我起来学习....
👱个人主页: 《 C G o d 的个人主页》 \color{Darkorange}{《CGod的个人主页》} 《CGod的个人主页》交个朋友叭~
💒个人社区: 《编程成神技术交流社区》 \color{Darkorange}{《编程成神技术交流社区》} 《编程成神技术交流社区》加入我们,一起高效学习,收割好Offer叭~
🌱刷题链接: 《 L e e t C o d e 》 \color{Darkorange}{《LeetCode》} 《LeetCode》快速成长的渠道哦~
目录
- 前言
- 一、strcat
- 1.1strcat使用场景
- 1.2 strcat模拟实现
 
- 二、strstr
- 2.1 strstr使用场景
- 2.2 strstr模拟实现
 
前言
- C语言中对字符和字符串的处理很是频繁,但是- C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中
- 字符串常量适用于那些对它不做修改的字符串函数
一、strcat
1.1strcat使用场景
char * strcat ( char * destination, const char * source );
- 源字符串必须以 ‘\0’ 结束
- 目标空间必须有足够的大,能容纳下源字符串的内容
- 目标空间必须可修改
- 字符串自己给自己追加,如何? 
  - 不可以,按上述规则自我追加的时候会覆盖掉某些值
 
1.2 strcat模拟实现
参考代码:
char* my_strcat(char* dest, const char* src) 
{
	char* ret = dest;
	assert(dest != NULL);
	assert(src != NULL);
	while (*dest)
	{
		dest++;
	}
	while ((*dest++ = *src++))
	{
		;
	}
	return ret;
}
二、strstr
2.1 strstr使用场景
char * strstr ( const char *str1, const char * str2);
- 去str1寻找与str2相等的子串,然后把该子串的起始位置返回
#include <stdio.h>
#include <string.h>
int main()
{
	char str[] = "This is a simple string";
	char* pch;
	pch = strstr(str, "simple");
	puts(pch);
	return 0;
}
2.2 strstr模拟实现
参考代码:
char* strstr(const char* str1, const char* str2) 
{
	char* cp = (char*)str1;
	char* s1, * s2;
	if (!*str2)
		return((char*)str1);
	while (*cp)
	{
		s1 = cp;
		s2 = (char*)str2;
		while (*s1 && *s2 && !(*s1 - *s2))
			s1++, s2++;
		if (!*s2)
			return(cp);
		cp++;
	}
	return(NULL);
}



















