如何自己编写代码实现类似strstr的长尾词查找功能?

2026-04-12 04:531阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计349个文字,预计阅读时间需要2分钟。

如何自己编写代码实现类似strstr的长尾词查找功能?

1. 函数定义:`char *strstr(const char *str1, const char *str2);` - 功能:判断`str1`中是否包含子串`str2`。 - 返回值:若包含,返回`str1`中子串`str2`首字符的地址;若不包含,返回空指针NULL。

一.用法

定义:char * strstr( const char *str1, const char *str2 );

•判断str1中是否包含子串str2

•若包含,则返回在str1中子串str2首字符的地址

•若不包含,则返回空指针NULL

例:

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<string.h> int main() { char arr1[] = "zhangsan"; char arr2[] = "san"; char* ret = strstr(arr1, arr2); if (ret == NULL) { printf("子串不存在\n"); } else { printf("子串存在 且为:%s\n", ret); } return 0; }

运行结果:


二、代码模拟实现

#define _CRT_SECURE_NO_WARNINGS 1 #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) { 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 email[] = "zpw@bitejiuyeke.com"; //char substr[] = "bitejiuyeke"; //char* ret = my_strstr(email, substr); char arr1[] = "zhangsan"; char arr2[] = "san"; char* ret = my_strstr(arr1, arr2); if (ret == NULL) { printf("子串不存在\n"); } else { printf("子串存在,且为:%s\n", ret); } return 0; }

运行结果:


以上就是strstr函数的基本用法,欢迎指正~

如何自己编写代码实现类似strstr的长尾词查找功能?

本文共计349个文字,预计阅读时间需要2分钟。

如何自己编写代码实现类似strstr的长尾词查找功能?

1. 函数定义:`char *strstr(const char *str1, const char *str2);` - 功能:判断`str1`中是否包含子串`str2`。 - 返回值:若包含,返回`str1`中子串`str2`首字符的地址;若不包含,返回空指针NULL。

一.用法

定义:char * strstr( const char *str1, const char *str2 );

•判断str1中是否包含子串str2

•若包含,则返回在str1中子串str2首字符的地址

•若不包含,则返回空指针NULL

例:

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<string.h> int main() { char arr1[] = "zhangsan"; char arr2[] = "san"; char* ret = strstr(arr1, arr2); if (ret == NULL) { printf("子串不存在\n"); } else { printf("子串存在 且为:%s\n", ret); } return 0; }

运行结果:


二、代码模拟实现

#define _CRT_SECURE_NO_WARNINGS 1 #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) { 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 email[] = "zpw@bitejiuyeke.com"; //char substr[] = "bitejiuyeke"; //char* ret = my_strstr(email, substr); char arr1[] = "zhangsan"; char arr2[] = "san"; char* ret = my_strstr(arr1, arr2); if (ret == NULL) { printf("子串不存在\n"); } else { printf("子串存在,且为:%s\n", ret); } return 0; }

运行结果:


以上就是strstr函数的基本用法,欢迎指正~

如何自己编写代码实现类似strstr的长尾词查找功能?