啊我摔倒了..有没有人扶我起来学习....
👱个人主页: 《 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);
}