在看了童晶老师的c语言课程中又一行代码看不懂
把一个整数类型的3通过运算转化成字符类型的3,并且保存在数组一个元素中。
我使用了ascall码还是运算不来,特来请教,感谢。
int number= 3; // 需要存储在字符串数组里的数字,待处理的整数
char s[20]; // 存储容器, 转化为字符串输出
r = number % 10; // 用取余求每一位的
s[i] = r + '0' - 0; // 把r的值以字符存储在字符数组中
问的有点乱,还望见谅。
在看了童晶老师的c语言课程中又一行代码看不懂
把一个整数类型的3通过运算转化成字符类型的3,并且保存在数组一个元素中。
我使用了ascall码还是运算不来,特来请教,感谢。
int number= 3; // 需要存储在字符串数组里的数字,待处理的整数
char s[20]; // 存储容器, 转化为字符串输出
r = number % 10; // 用取余求每一位的
s[i] = r + '0' - 0; // 把r的值以字符存储在字符数组中
问的有点乱,还望见谅。
字符与数字的关系:
字符 '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;
}