C语言实现strstr

#define _CRT_SECURE_NO_WARNINGS #include #include #include char* Mystrstr(char* str1, char* str2) { assert(*str1); assert(*str2); char* temp1 = str1; char* temp2 = str2; //求str2的长度 int len = 0; while (*str2 != '\0') { ++str2; ++len; } str2 = temp2; while (*str1 != '\0') { //如果指针str1和str2所指的值相同,就让指针temp1等于str1,开始查找 if (*str1 == *str2) { temp1 = str1; int i = 0; //向后查找len次,如果不同则退出循环 for (; i < len; ++i) { if (str1[i] != str2[i]) { break; } } //退出循环后如果i与len相等,说明str2为str1的子串,返回指针temp1 if (i == len) { return temp1; } } ++str1; } //全部找完没有返回,则说明str2不是str1的子串 return NULL; }int main() { char str1[] = "abcdefg"; char str2[] = "bcd"; char* temp = Mystrstr(str1, str2); //printf("%s", temp); if (!temp) { printf("不是子串\n"); } else { printf("是子串\n"); } system("pause"); return 0; }

【C语言实现strstr】C语言实现strstr
文章图片

    推荐阅读