1
for (int i = 0; i < s.length(); i++)
{
   if (isdigit(s[i]))
   counts[s[i] - '0'] ++;
}

このコードは何を意味するのか、誰でもこのコードを説明できます "counts[s[i] - '0'] ++;" 正確な操作

4

4 に答える 4

1

お役に立てれば。

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] で見つかった回数をカウントします。

于 2013-04-09T07:14:15.500 に答える
1
  • counts配列です。

  • s[i]ASCII の数字を含む文字です。'0''1''2'、 ...

  • s[i] - '0'それらを整数に変換します。123、 ...

  • 上記の数値は、配列内の n 番目の項目のインデックスを示します -->X

  • counts[X] ++配列の X 番目の項目を 1 つ増やします。

于 2013-04-09T07:15:22.070 に答える