C编程 - 用字符串替换int?

时间:2014-03-14 15:56:31

标签: c string int

是否可以让字符串替换整数。例如,如果你有一个接受像23933这样的大整数的程序,你可以这样做:

  

int 2 =“two”      int 3 =“三”      int 9 =“九”

因此输出内容如下:

  “两三九三三”

你会怎么做呢?

2 个答案:

答案 0 :(得分:3)

void printNum(int x)
{
    static const char * const num[] = {
        "zero ", "one ", "two "  , "three ", "four ",
        "five ", "six ", "seven ", "eight ", "nine "
    };

    if (x < 10) {
        printf(num[x]);
        return;
    }
    printNum(x / 10);
    printNum(x % 10);
}

或者非常紧凑的版本:

void printNum(int x)
{
    static const char * const num[] = {"zero ",  "one ", "two ", "three ",
                                       "four ",  "five ", "six ", "seven ",
                                       "eight ", "nine "};
    (x < 10)? printf(num[x]) : (printNum(x / 10), printNum(x % 10));
}

答案 1 :(得分:1)

使用数组

const char *ints[] = {"zero", "one", "two", "three"};

int r = rand() % (sizeof ints / sizeof *ints);
printf("%s\n", ints[r]);