c语言整数转换成字符串

将一个整数n转换成字符串。例如;输入483,应得到字符串"483"。其中,要求用一个递归函数实现把一个正整数转换为字符串。

输入格式:
首先输入测试组数T,然后输入T组测试数据。每组测试数据输入一个整数n(-2^31≤n≤2^31-1)。

输出格式:
对于每组测试,输出转换后的字符串。

输入样例:
1
1234
输出样例:
1234

供参考:

#include<stdio.h>
void fun(int a)
{
    if (a == 0) return;
    fun(a/10);
    putchar(a%10+'0');
}
int main()
{
    int T, n;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        if(n<0)//负数
        {
            n=-n;
            putchar('-');
        }
        else if(n == 0){ //0
            putchar(n+'0');
            putchar('\n');
            continue;
        }
        fun(n);
        putchar('\n');
    }
    return 0;
}

#include <stdio.h>

char *to_string_impl(int a, char *p)
{
    if (a < 10)
    {
        *p++ = a + '0';
        return p;
    }
    else
    {
        char *q = to_string_impl(a / 10, p);
        *q++ = a % 10 + '0';
        return q;
    }
}

char *to_string(int a)
{
    static char buffer[32];
    char *p = buffer;
    if (a < 0)
    {
        *p++ = '-';
        a = -a;
    }
    char *q = to_string_impl(a, p);
    *q = '\0';
    return buffer;
}

int main()
{
    int n, a;
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &a);
        printf("%s\n", to_string(a));
    }
    return 0;
}