编写一个名为string_in()的函数,接受两个指向字符串的指针作为参数,如果第1个字符串中包含第2
#include <stdio.h>
#include <string.h>
#define SIZE 10
char * string_in(const char *, const char *);
int main(void)
{
char a[SIZE] = "hats";
char b[SIZE] = "at";
char *ptr;
if(ptr = string_in(a, b)) //如果a中有b,则能成功打印a,否则无操作
puts(ptr);
return 0;
}
char * string_in(const char * s1, const char * s2)
{
int n1 = strlen(s1);
int n2 = strlen(s2);
const char * ptr;
ptr = s1;
if(n1 < n2) //1比2小,直接结束
return NULL;
else if(n1 == n2)
{
if(!strcmp(s1, s2)) //1和2一样,则返回
return s1;
else
return NULL;
}
else
{
while(*ptr && strncmp(ptr, s2, n2)) //直到s1的末尾
ptr++;
if(*ptr)
return ptr;
else
return NULL;
}
}
个字符串,该函数将返回第1个字符串开始的地址。例如,string_in("hats", "at")将返回hats中a的地址。否则,该函数返回空指针。在一个完整的程序中测试该函数,使用一个循环给函数提供输入值。
以下为代码: