C/C++查找子串

时间:2025-05-09 07:34:56
#define _CRT_SECURE_NO_WARNINGS #include<> #include<> #include<> //优化思路 memcmp(str,substr,3)==0 int myStrstr(char*str, char*subStr) { int num = 0; while (*str!='\0') { if (*str != *subStr) { str++; num++; continue; } //创建临时指针 char*tmpStr = str; char*tmpSubStr = subStr; while (*tmpSubStr!='\0') { if (*tmpStr != *tmpSubStr) { //匹配失败 str++; num++; break; } tmpStr++; tmpSubStr++; } if (*tmpSubStr == '\0') { //匹配成功 return num; } } return - 1; } void test01() { char*str = "abcdefgdnf"; int ret = myStrstr(str, "dnf"); if (ret == -1) { printf("未找到子串\n"); } else { printf("找到了子串,位置为:%d\n",ret); } } int main() { test01(); return EXIT_SUCCESS; }