私はC言語を学習しています。私は自分の学習教材でこの機能を見つけました。この関数は文字列ポインタと文字を受け取り、その文字列に含まれる文字の数を数えます。たとえば、文字列がthis is a string
およびch = 'i'
の場合、関数はという3回の出現に対して3
を返します。whileループで文字ポインタを理解する
私が混乱している部分はwhileループにあります。私はwhile(buffer[j] != '\0')
のようなものを読んで、ヌル値を読み取るまでプログラムが各要素j
を循環することを期待していました。私は、whileループでwhileループがどのように動作するのかを知りません。また、ヌル値に達するまでbuffer++
を使ってプログラムを文字単位でどのようにインクリメントするのかを知ることはできません。私はデバッグを使用しようとしましたが、何らかの理由で動作しません。前もって感謝します。それはあなたが文字列全体をスキャン知って、その時点でnull文字、を指すまで、あなたはポインタbuffer
をインクリメントしているループで
int charcount(char *buffer, char ch)
{
int ccount = 0;
while(*buffer != '\0')
{
if(*buffer == ch)
ccount++;
buffer++;
}
return ccount;
}
** buffer ++ ** line 8 –