文字 ===》数字
#include <stdio.h>
#include <ctype.h>
int main()
{
char c = '5';
if (isdigit(c))
{
int num = c - '0';
printf("Number: %d\n", num);
}
else
{
printf("Not a digit\n");
}
return 0;
}
`-'0'` は、文字番号を対応する整数に変換するためによく使用される方法です。この方法の原理は、文字番号と整数の間の ASCII コード値の違いを利用することです。
ASCII コード テーブルでは、文字「0」のコード値は 48、文字「1」のコード値は 49、同様に文字「9」のコード値は 57 になります。したがって、文字番号に対して `-'0'` 演算を実行するときは、実際には文字の ASCII コード値から文字 '0' の ASCII コード値を減算し、それによって文字によって表される整数を取得します。
たとえば、文字 `c = '5'` がある場合、演算 `c - '0'` を実行すると、整数 5 が得られます。これは、文字「5」の ASCII コード値が 53 であり、文字「0」の ASCII コード値が 48 であるためです。この 2 つを減算すると 5 になります。
数字 ===》文字(大/小)
n
文字定数を整数に加算し'A'
、1 を減算して、対応する大文字を取得します。同様に、次のコードを使用して、n
整数を同等の小文字に変換できます。
#include <stdio.h>
int main()
{
int n = 1; // A is the first letter of the alphabet
char c = 'A' + n - 1;
printf("Uppercase: %c\n", c); // Output: B
n = 2; // a is the first letter of the alphabet
c = 'a' + n - 1;
printf("Lowercase: %c\n", c); // Output: c
return 0;
}