for (int i = 0; i < s.length(); i++)
{
if (isdigit(s[i]))
counts[s[i] - '0'] ++;
}
このコードは何を意味するのか、誰でもこのコードを説明できます "counts[s[i] - '0'] ++;" 正確な操作
for (int i = 0; i < s.length(); i++)
{
if (isdigit(s[i]))
counts[s[i] - '0'] ++;
}
このコードは何を意味するのか、誰でもこのコードを説明できます "counts[s[i] - '0'] ++;" 正確な操作
お役に立てれば。
1) '0' のアスキー値は 48 です
2) s[i] が数字 (0 から 9 まで) の場合
3) s[i] - '0' はインデックス (0..9 の間) に評価されます。
例: '1' のアスキー値は 49 とします s[i] が '1' の場合、s[i] - '0' は 49-48 = 1 とします
4) counts[s[i]-'0']++ は、特定の数字が s[i] で見つかった回数をカウントします。
counts
配列です。
s[i]
ASCII の数字を含む文字です。'0'
、'1'
、
'2'
、 ...
s[i] - '0'
それらを整数に変換します。1
、2
、3
、 ...
上記の数値は、配列内の n 番目の項目のインデックスを示します -->X
counts[X] ++
配列の X 番目の項目を 1 つ増やします。