strchr()の代わりにwhile文で表す方法について
C言語入門者です。ポインタの勉強をしています。
#include <stdio.h>
main()
{
char s[] = "I love cat and dog."; /*探す対象の文字列*/
char c = 'a'; /*探す文字*/
char *p = s;
int n = 0;
printf("\"%s\"の中から\'%c\'を探します。\n", s, c);
while(*p != '\0'){
if(*p == c){
printf("%d文字目で発見しました。\n",p-s+1);
n++;
}
p++;
}
if(n == 0)
printf("1つも見つかりませんでした。\n");
else
printf("全部で%d個見つかりました。\n", n);
}
以上のプログラムにてstrchr()関数の代わりにwhile()関数で表したいのですが
・while(*p == '\0')
の時はどんな時なのか
・if(*p == c)
にてchar *p = s;
が何を意味するのか
が分からなかったのでご教授お願い致します。