首页 > 试题广场 >

编写一个函数string_in(),它接受两个字符串指针参数

[问答题]

编写一个函数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;
 }
 }
}

发表于 2018-05-05 21:52:16 回复(0)