ASCII文字をCのintに変換するにはどうすればよいですか?
どうですか:
int a_as_int = (int)'a';
これを探していますか:
int c = some_ascii_character;
または、割り当てなしで変換するだけです:
(int)some_aschii_character;
[〜#〜] ascii [〜#〜] to Integer atoi()
関数を使用して、文字列を受け取り、整数に変換します。
#include <stdlib.h>
int num = atoi("23"); // 23
文字列に小数が含まれる場合、数値は切り捨てられます。
int num = atoi("23.21"); // 23
AshotとCwanには同意しますが、「7」のようなASCII暗号を7のようなintに変換したいですか?
それから私は再編します:
char seven = '7';
int i = seven - '0';
または、警告が表示される場合があります。
int i = (int) (seven - '0');
コメント後に修正、ありがとう。
Cのchar値は暗黙的にintに変換可能です。たとえば、char c; ... printf("%d", c)
はc
の10進数のASCII値を出力し、int i = c;
はc
のASCII整数値をi
。 (int)c
を使用して明示的に変換することもできます。 ASCII数字をintに変換する方法など、何か他のものを意味する場合、それはc - '0'
になります。これは、暗黙的にc
をintに変換し、ASCII '0'
の値、つまり48(Cでは、'0'
などの文字定数は、歴史的な理由からchar型ではなくint型です)。
ASCII ordinal value?という意味ですか?次のような型キャストを試してください。
int x = 'a';
他の皆が言ったように、あなたはそれを直接変換することができます...「ASCII拡張文字をUTF-16またはUTF-32値に変換する方法」のようなものを意味しない限り。これはまったく異なる質問です(少なくとも1つは良い質問です)。そして、私が正しく覚えている場合、「純粋な」Cのみを使用している場合、非常に困難です。次に、ここから開始できます: https://stackoverflow.com/questions/114611/what-is-the -best-unicode-library-for-c/114643#114643
(ASCII Extendedの場合、ASCIIセットに対する多くの「拡張」の1つを意味します。ベースASCIIセットの0〜127文字は、直接に変換可能です。 Unicode、128-255はそうではありません。)たとえば、ISO_8859-1 http://en.wikipedia.org/wiki/ISO_8859-1 は、7ビットASCIIセットの8ビット拡張です。または(非常に有名な)コードページ437および850。
C99標準ライブラリでは、文字定数から対応するASCII int値。
'a'
などのCの文字定数は、ASCIIであるとは限りません。
C99は、これらの定数についていくつかの保証のみを行います。その 数字は連続している 。
Word ASCIIは、フッターノート、およびフッターノート173の C99 N1256標準ドラフト にのみ表示されます。
7ビットUS ASCII文字セットを使用する実装では、印刷文字は値が0x20(スペース)から0x7E(チルダ)にある文字であり、制御文字は値がある文字です0(NUL)から0x1F(US)、および文字0x7F(DEL)。
ASCIIが唯一の可能性ではないことを意味する