如何读取整数并将其转换为ASCII字符?

时间:2015-09-28 09:05:11

标签: c++ int ascii

我是这个C ++环境的新手,可能需要一个简单的帮助。

假设你有一个数组

const char digits[] = "01234567..XYZ"

如何通过读取整数(例如123)来使用ASCII转换转换整数,并将其分别显示在控制台上,如1,2和3。

提前致谢。

2 个答案:

答案 0 :(得分:2)

你可以创建一个循环然后简单地这样做:

c = (char)(i%10);  //To extract the last digit of an integer

i = i/10;  //To remove the last decimal digit from an integer

char c = '0' + i; //To convert a binary digit stored in a char to an ASCII digit

答案 1 :(得分:2)

此?

#include <cstdio>

//void decout(unsigned int number, FILE * stream)
//{
//  fprintf(stream, "%u", number);
//}

void decout(unsigned int number, FILE * stream)
{
    unsigned int tmp = number;
    unsigned int div = 1;
    while ((tmp/=10) > 0) { div *= 10; }
    while (div > 0) { fputc(((number/div)%10) + '0', stream); div /= 10; }
}

void decout_alt(unsigned int number, FILE * stream)
{
    bool printZero = 0;
    for (unsigned int max = 1000000000, p = (number / max) % 10; max > 0; max /= 10, p = max>0?(number / max) % 10:0) //32-bit only
    {
        if (p != 0 || printZero) {
            fputc(p + '0', stream); printZero = true;
        }
    }
}

int main(int argc, char *const* argv)
{
    decout(123, stdout);
    decout_alt(123, stdout);
}