字符与数字的相互转换C++

一、字符转数字

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);
运行结果

 

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);

 

 
posted @ 2023-11-02 10:33  南国之恋  阅读(288)  评论(0编辑  收藏  举报