C Primer Plus(第六版)11.13 编程练习 第8题

发布时间:2024年01月14日

/*
编写一个名为string in() 的函数,接受两个指向字符串的指针作为参数。如果第2个字符串中
包含第1个字符串,该函数将返回第1个字符串开始的地址。例如,string in ("hats", "at")
将返回hats中a的地址。否则,该函数返回空指针。在一个完整的程序中测试该函数,使用一个
循环给函数提供输入值。
*/

#include<stdio.h>

#define SIZE 40

char * string_in(char tr[],char sr[]);

int main(void)
{?? ?
?? ?char *p;
?? ?char tr[SIZE] = "abcdefg";
?? ?char sr[SIZE];
?? ?
?? ?while(1)
?? ?{
?? ??? ?printf("q to quit\ninput string:\n");
?? ??? ?scanf("%s",sr);?
?? ??? ?while (getchar() != '\n')
? ? ? ??? ??? ?continue;
?? ??? ?p=string_in(tr,sr);
?? ??? ?printf("%c\n",*p);

?? ?}
?? ?return 0;
}

char * string_in(char tr[],char sr[])
{
?? ?char *p=NULL;
?? ?int i,j;
?? ?for(i=0;i<sizeof(sr)&&sr[i]!='\0';i++)
?? ?{
?? ??? ?for(j=0;j<sizeof(tr)&&tr[j]!='\0';j++)
?? ??? ?{
?? ??? ??? ?if(sr[i]==tr[j])
?? ??? ??? ?{
?? ??? ??? ??? ?p=&tr[j];
?? ??? ??? ??? ?return p;?
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ??? ?continue;
?? ??? ?}
?? ?}
?? ?return p;
}

文章来源:https://blog.csdn.net/apple_50569014/article/details/135552902
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。