"char *search( char *s, char *t ){\n\t\tint i,j,k;\n\t\tchar *p = NULL;\n\t\tfor ( i=0; s[i]; i++)\n\t\t\tfor( j=i,k=0; s[j]==t[k]; k++,j++)\n\t\t\t\tif( t[k+1]=='�'){\n\t\t\t\tp = &s[i];\n\t\t\t\treturn p;\n\t\t\t}\n\t\treturn p;\n}\nchar *search( char *s, char *t )\n{\n\tint i,j,k;\n\t\tchar *p=NULL;\n\t\tfor(i=0;s[i];i++)\n\t\t{\n\t\t\tfor(j=i,k=0;s[j]==t[k];i++,k++)\n\t\t\t{\n\t\t\t\tif(t[k+1]=='�')\n\t\t\t\t\tp = &s[j];\n\t\t\t}\n\t\t}\n\t\treturn 0;\n}\n\n帮我比较两串代码有什么不同\n\n两串代码的不同之处在于第一个代码中的第二个for循环中,循环变量j的更新错误,应该是j++而不是i++。另外,第一个代码中的return语句返回了指向匹配成功的子串的指针,而第二个代码中的return语句返回了0,没有返回匹配成功的子串的指针。

C语言字符串匹配算法比较:找出两段代码的差异

原文地址: https://www.cveoy.top/t/topic/pxCU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录