一个整数类型3怎么变成字符类型的3

0

在看了童晶老师的c语言课程中又一行代码看不懂

把一个整数类型的3通过运算转化成字符类型的3,并且保存在数组一个元素中。

我使用了ascall码还是运算不来,特来请教,感谢。

int number= 3; // 需要存储在字符串数组里的数字,待处理的整数
char s[20]; // 存储容器, 转化为字符串输出

r = number % 10; // 用取余求每一位的
s[i] = r + '0' - 0; // 把r的值以字符存储在字符数组中

问的有点乱,还望见谅。

0

字符与数字的关系:

字符 '0' 的整数值为 48。
字符 '3' 的整数值为 51,即 48 + 3,即 '0' + 3。

字符串以 0 结尾,将整数转换后的字符保存在字符数组中,记得将字符串末尾置 0。

以下是个完整的例子:

#include <stdio.h>
#include <conio.h>

int main()
{
	int number = 123;
	char s[20];
	int r;

	r = number / 100 % 10;	s[0] = r + '0';	// 百位
	r = number / 10 % 10;	s[1] = r + '0';	// 十位
	r = number % 10;		s[2] = r + '0';	// 个位
							s[3] = 0;	// 字符串结尾 0

	puts(s);

	return 0;
}
ava
慢羊羊

2020-7-8

感谢 -  迷雾中的前行者  2020-7-11
技术讨论社区