文字列の中から文字を探すプログラムです。(Cの絵本サンプルプログラムより抜粋)
???以下の解釈で合ってますでしょうか???
1、char cのcはaという文字が代入される
2、char *p = sのpには、I love cat and dog.の頭文字「I」のアドレスが代入される。
3、ただ、sを%sで受けると、「I love cat and dog.」全体を指す
4、while(*p != '\0')は、「pの値がnullではない」ならば繰り返す、ということ
5、 if(*p == c)は、「pの値がcと同じならば」つまり「pの値がaという文字ならば」ということ
【不明点】
6、p-s+1って何を意味しているのでしょうか
7、nの役割って何なのでしょうか?n++って。いったい何を増やしているのでしょうか?
#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);
{
}
"I love cat and dog."の中から'a'を探します。
9文字目で発見しました。
12文字目で発見しました。
全部で2個見つかりました。