字母===>数字
#include <stdio.h>
#include <ctype.h> // 引入 ctype.h 库以使用 isdigit() 函数
int main()
{
char c = '5'; // 定义一个字符变量 c 并赋值为 '5'
// 使用 isdigit() 函数检查字符 c 是否为数字
if (isdigit(c))
{
// 如果 c 是数字,我们通过减去字符 '0' 来获取其整数值
int num = c - '0';
// 打印出数字
printf("Number: %d\n", num);
}
else
{
// 如果 c 不是数字,打印出提示信息
printf("Not a digit\n");
}
return 0; // 程序正常结束,返回 0
}
/*
这段代码的主要功能是检查变量 c 是否为数字字符,
如果是,则将其转换为对应的整数并打印出来;
如果不是,就打印出提示信息。
这里使用了 isdigit() 函数来判断一个字符是否为数字,这个函数是 ctype.h 库中的一个函数。
如果字符是数字(‘0’-‘9’),则 isdigit() 函数返回非零值;否则,返回 0。
在 C 语言中,非零值被视为真(true),零值被视为假(false)。
因此,isdigit(c) 就可以用来判断 c 是否为数字字符。
如果 c 是数字字符,我们可以通过减去字符 ‘0’ 来获取其对应的整数值,
因为在 ASCII 码表中,数字字符的顺序是连续的,‘0’ 的 ASCII 码值为 48,‘1’ 的 ASCII 码值为 49,以此类推,所以字符 ‘n’ 对应的整数值就是 n - '0'。
最后,使用 printf() 函数将结果打印出来。
如果 c 不是数字字符,我们就打印出提示信息 “Not a digit”。
程序最后返回 0,表示程序正常结束。
这是一个编程习惯,通常情况下,程序正常结束时返回 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,两者相减得到5。
数字===>字母(大/小写)
将整数n
加上字符常量'A'
,然后减去1,得到了对应的大写字母。类似地,也可以使用下面的代码将整数n
转换为对应的小写字母:
#include <stdio.h>
int main()
{
int n = 1; // A 是字母表的第一个字母
char c = 'A' + n - 1; // 通过 ASCII 码计算得到第 n 个大写字母
printf("Uppercase: %c\n", c); // 输出:B
n = 2; // a 是字母表的第一个字母
c = 'a' + n - 1; // 通过 ASCII 码计算得到第 n 个小写字母
printf("Lowercase: %c\n", c); // 输出:c
return 0;
}
/*
这段代码的主要功能是计算字母表中的第 n 个字母。
在 ASCII 码表中,大写字母 A-Z 的 ASCII 码值是连续的,小写字母 a-z 的 ASCII 码值也是连续的。
因此,我们可以通过计算来得到字母表中的第 n 个字母。
具体的计算方法是:首先取字母表的第一个字母(对于大写字母是 ‘A’,对于小写字母是 ‘a’),然后加上 n-1。这样就可以得到字母表中的第 n 个字母。
最后,使用 printf() 函数将结果打印出来。
*/