要正确写出strstr函数,首先必须清楚地认识到这个函数的功能,这个函数用来在一个字符串中找到目标字符串。下面这段代码是我自己写的,不是特别简练,往后还会完善。
好了,我们来讲讲如何实现这个函数。
首先判断目标字符串是否是空字符串,如果是就返回0,如果不是就先求出目标字符串的长度(判断时要用到),这简单,就等于嵌套了一个strlen函数,下来就是遍历字符串来寻找目标字符串,用for循环,条件是 *(msg + i )== *( str + i ),意思是字符串中的字符相等才能进入循环,循环里嵌套 if 语句 !*(str+i+1),条件是如果遍历的这个字符下一个字符等于0(即下一个字符为‘\0’),就结束返回地址,否则就返回NULL.即没有找到。
char* my_strstr(char* msg, const char* str) //找到一个字符串中目标字符串,返回目标字符串的前一位的地址
{
const char* end = str;
int str_len = 0;
int i = 0;
while (*end) //求目标字符串的长度
{
str_len++;
end++;
}
if (str_len == 0) //判断目标字符串是否为空
{
return 0;
}
else
{
while (*msg) //遍历字符串,直至找到