编写一个函数string_in(),它接受两个字符串指针参数。如果第二个字符串被包含在第一个字符串中,函数就返回被包含的字符开始的地址。例如,string_in("hats","at")返回hats中a的地址,则,函数返回空指针。在一个使用循环语句为这个函数提供输入的完整程序中进行测试。
#include <stdio.h> char *string_in(char *p1, char *p2); int main(void) { char str1[81]; char str2[21]; char *p; do { puts("input range string:"); gets(str1); puts("input match string:"); gets(str2); p = string_in(str1, str2); if ( p ) { puts("Find!"); puts(p); } else puts("Can't find!"); puts("input any char except q to go on."); gets(str1); } while(*str1 != 'q'); puts("Quit."); return 0; } char *string_in(char *p1, char *p2) { char *p1_save = p1, *p2_save = p2; if(*p1 == '\0' || *p2 == '\0') return NULL; while(1) { if(*p1 == *p2) { if(*++p2 == '\0') return p1_save; if(*++p1 == '\0') return NULL; } else { if(*++p1 == '\0') return NULL; p1_save = p1; p2 = p2_save; } } }
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题