for (i = 0; str1[i] && str2[i]; i++)
と同じです
for (i = 0; (str1[i] != 0) && (str2[i] != 0); i++)
これはと同じです
for (i = 0; (str1[i] != '\0') && (str2[i] != '\0'; i++)
基本的に、条件ステートメントで式が使用されている場合、値のブール値 (true または false) がチェックされます。それがブール値でない場合 - それが整数型だと言うと、 0 はfalse
それ以外のものですtrue
。
これは整数型str[i]
の- です。char
したがって、str[i] が 0 の場合は false と評価され、それ以外の場合は true と評価されます。
たとえば。
char c = 'A';
if(c)
と同じです
if (c != 0)
これはと同じです
if (c != '\0')
c は 'A' (ASCII では 65) です。65 != 0 であるため、true と評価され、if
入力されます。
代わりに、あなたが持っている場合
char c = 0;
また
char c = '\0';
c は 0 と評価されます。したがって、if(c) は false と評価され、if は入力されません。
である str[i] に同じロジックを拡張できますchar
。
をお持ちstr1[]="rate"
の場合は、 と同じ
str1[0] = 'r', str1[1] = 'a', str1[2] = 't', str1[3] = 'e', str1[4] = 0
です。
関してcount1[str1[i]]++;
これは、各文字が何回出現するかのカウントです。char セットが ascii の場合、文字列トラバーサルの最後に、count['A'] (count[65] と同じ) には、文字列内で 'A' が発生した回数が含まれます。
カウント配列の各メンバーが0
どこかに初期化されている (またはそれらがグローバルである) 場合にのみ機能します。
検討
str1[] = "ABAB";
count[str1[0]]
is same as count['A']
which is same as count[65]
(文字セットが ascii の場合)。
これ++
により、count['A'] が 1 になります
がi
1 になると 1になる。
= 2 になると 2
になる。 = 3 になると 2 になる。count[str1[1]]++
count['B']
i
count['A']
i
count['B']