寻找字符串中的是否存在子字符串并返回相应的地址,这也是我今年九月份在南农参加烽火星空上笔试题时遇到的编程题。上一篇中介绍了CPrimerPlus的参考答案给出的解决方案,这里再和大家分享另一篇网上看到的解决方案(参考了ChinaUnix博客中net_liufeng的文章,博客地址:http://blog.chinaunix.net/uid-20384937-id-1953691.html)。网上找的这个方案有个优点,他不是直接给出代码,而是先阐述了他的思路,然后再给出代码。这对于读者理解还是很有帮助的,感谢这位前辈了!下面先摘抄一下作者的思路:
从母字符串第一个字符开始,和子串比较,如果第一个字符和子串的第一个相等,就比较之后的子串的长度个字符,如果中间有不同的,就跳出循环,这时候i不是子串的长度,直到第一次找到全部匹配的时候,返回这时候母串的那个指针,这个实现应该也是最原始的了。。
char *string_in(char *str, char *sub_str) { int i = 0; size_t len = strlen(sub_str); //记录子字符串的长度 if ( len == 0 ) return NULL; //如果子字符串长度为0,返回NULL while ( *str != '