[求助]C Primer Plus练习题问题
题目:编写一个函数string_in(),它接受两个字符串参数,如果第二个字符串被包含在第一个中,就返回被包含的字符串开始的地址.例如:string_in("hats","at")返回hats中a的地址,否则返回空指针.程序代码:
#include <stdio.h> char *string_in(char *,char *); int main(void) { char str1[81], str2[81]; char *ptr; do{ puts("Enter the first string: "); fgets(str1, 80, stdin); puts("Enter the second string: "); fgets(str2, 80, stdin); ptr = string_in(str1, str2); if(ptr){ puts(ptr); printf("address:%p\n", ptr); } else puts("Can't find!"); puts("Enter any char except q to continue:"); fgets(str1, 80, stdin); }while(*str1 != 'q'); puts("Quit!"); return 0; } char *string_in(char *str1, char *str2) { for (; *str1 != '\0'; str1++) for (; *str2 != '\0'; str2++) if (*str1 == *str2) return str1; if (*str1 == '\0' || *str2 == '\0') return NULL; }想问下错在哪里,为什么每次输入例如good od以后就输出Can't find.但是输入od good以后就可以返回指针的地址,每次不输入参数时也可以返回指针地址.