admin管理员组

文章数量:1794759

strstr函数详解 看这一篇就够了

strstr函数详解 看这一篇就够了

 strstr()函数用于:查找子字符串

目录

函数介绍

用法示例

函数讲解

实现函数 

事例展示

函数介绍

函数声明:char *strstr(const char *str1, const char *str2)

头  文  件:#include <string.h> 返  回  值: 返回值为char * 类型( 返回指向 str1 中第一次出现的 str2 的指针);如果 str2 不是 str1 的一部分,则返回空指针。 

用法示例 #include <stdio.h> #include <string.h> int main() { char str[] = "This is a simple string"; char* pch; pch = strstr(str, "simple"); if (pch != NULL) strncpy(pch, "sample", 6); puts(str); return 0; } 函数讲解

实现函数  char* My_strstr(const char* str1, const char* str2) { assert(str1 && str2); const char* s1 = str1; const char* s2 = str2; const char* p = str1; while (*p!='\\0') { s1 =p ; s2 = str2; while (*s1 != '\\0' && *s2 != '\\0' && *s1 == *s2) { s1++; s2++; } if (*s2 == '\\0') { return (char*)p; } p++; } return NULL; } 事例展示 #include <stdio.h> #include <string.h> #include<assert.h> char* My_strstr(const char* str1, const char* str2) { assert(str1 && str2); const char* s1 = str1; const char* s2 = str2; const char* p = str1; while (*p!='\\0') { s1 =p ; s2 = str2; while (*s1 != '\\0' && *s2 != '\\0' && *s1 == *s2) { s1++; s2++; } if (*s2 == '\\0') { return (char*)p; } p++; } return NULL; } int main() { char str[] = "This is a simple string"; char* pch; pch = My_strstr(str, "simple"); if (pch != NULL) strncpy(pch, "sample", 6); puts(str); return 0; }

本文标签: 这一详解函数就够了strstr