プログラミングでは、数字の文字列を個々の整数値に変換する必要がある状況によく遭遇します。インデックスを使用して各文字にアクセスするのは簡単ですが、それらの文字を整数に変換するのは難しいように思えるかもしれません。
人気のある atoi() 関数には文字列引数が必要なので、各文字を文字列に変換してから atoi を使用するというアイデアが生まれました。 ()。ただし、より直接的で効率的なアプローチがあります。
重要なのは、数字の文字エンコーディングが連続していることを認識することです。 ASCII、UTF-x、およびその他のほとんどのエンコード システムでは、「0」のエンコードは 48 ですが、「9」のエンコードは 57 です。
これを利用して、数字の整数値を抽出できます。 「0」または 48 から文字を減算します。例:
char c = '1'; int i = c - '0'; // i is now equal to 1, not '1'
これは同等ですto:
char c = '1'; int i = c - 48; // i is now equal to 1, not '1'
どちらの式も同じ結果を生成しますが、一般に最初のオプション (c - '0') の方が読みやすいと考えられています。
以上がC/C で文字列から 1 桁を整数に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。