字符与数字的相互转换

一、字符转数字

char类型字符转换为数字,其实是转换为ASCII码值

有两种方式:

1.强制类型转换,结果为对应的ASCII码值

 char v1 = 'a';
 char v2 = 'z';
 char v3 = '1';
 char v4 = '9';

 int num1 = (int)v1;
 int num2 = (int)v2;
 int num3 = (int)v3;
 int num4 = (int)v4;

 printf("%d %d %d %d\n", num1, num2, num3, num4);

运行结果

字符与数字的相互转换_第1张图片

2.字符相减得到ASCII码的差值

字符减去字符得到的是它们ASCII码的差值(字符减去字符本身是0,再加上所需数字即可)

举例1:

将字符A~Z分别置为1~26,因为字符A减去字符A的结果是0,再加1即可将字符A置为1,将字符A作为根基。其他所有字母由于ASCII码值比字符A大,也都减去字符A再加1即可得到相对应的数字。

char arr[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int i = 0; i < strlen(arr); i++)
{
    printf("%d ", arr[i] - 'A' + 1);
}

举例2:

将字符型数字转换为对应的整型数字,只需要将字符型数字减去 ‘0’,因为他们的ASCII码差值正好是对应的整型数字值

int v1 = '1' - '0';
int v2 = '2' - '0';

printf("%d %d", v1, v2);

整型数字转字符型数字:+ ‘0’

二、数字转字符 

1.加上某字符

数字加上某字符可以理解为某字符加上该数字,其实就是在该字符的ASCII码值加上数字,结果就是新的ASCII码值对应的字符

举例1:

将数字转换为对应的字符数字,只需加上字符‘0’即可

	char v1 = 1 + '0';
	char v2 = 9 + '0';

	printf("%d %d", v1, v2);

你可能感兴趣的:(C/C++,开发语言,c语言)