在广泛搜索将整数转换为视觉等效字符串的函数但一无所获之后,我决定编写自己的。
函数“ascii”接受三个参数:要转换的整数、保存转换后的整数的字符串和一个保留为 0 的计数器。
void ascii(int c, char str[], int k) {
if (c <= 9) {
str[k] = c + '0';
}
else if (c >= 10) {
str[k] = c / 10 + '0';
ascii(c % 10, str, k + 1);
}
}
用个位数的数字测试这个函数并没有什么意外的结果,但是在更大的数字上,事情开始变得一团糟。76变成“761”,765变成“|51”,7658变成“-81”。数字包含的数字越多,我对结果字符串的理解就越少。是什么赋予了?