/*设计并测试一个函数,搜索第一个函数形参指定的字符串,在其中查找第二个函数形参指定的字符首次出现的位置。如果成功,该函数返回指向该字符的指针,如果未找到指定字符,则返回空指针(该函数的功能与strchr()函数相同)。在一个完整的程序中测试该函数,使用一个循环给函数提供输入值。*/
# include <stdio.h>
# include <string.h>
# define SIZE 100
char *FIND(char *arr,char ch)
{
int len=strlen(arr);
char *p=arr;
int i;
for(i=0; i<len; i++)
{
if(ch==*p)
return p;
p++; //pointer moves with ch
}
if(i==len)
return NULL;
}
int main(void)
{
char arr[SIZE]="watermelon";
char ch;
char *ps;
printf("Enter a character(Ctrl+Z to quit):\n");
while(scanf("%c",&ch)==1)
{
getchar();//get '\n'
ps=FIND(arr,ch);
if(ps)
printf("Found %c in apple\n",*ps);
else
printf("Not found\n");
}
return 0;
}
# include <stdio.h>
# include <string.h>
char *FIND(char *arr,char ch)
{
int i=0;
int len=strlen(arr);
while(i<len)
{
if(arr[i]==ch)
{
return &arr[i];
break;
}
i++;
}
if(arr[len]=='\0')
return &arr[len];
}
int main()
{
char arr[]="apple";
char ch;
printf("Enter a character(Ctrl+Z to quit):\n");
while(scanf("%c",&ch)==1)
{
getchar();//get '\n'
char *p=FIND(arr,ch);
if(*p)
printf("Found %c in apple\n",*p);
else
printf("Not found\n");
}
return 0;
}
初学指针运用到处碰壁,借鉴以上代码加以修改用来理解,并非自己想出来的