无需打印即可将int转换为字符串

时间:2014-05-04 12:17:56

标签: string int

我想将int转换为字符串而不在屏幕上打印任何内容。现在我使用了sprintf,但这也将int打印到我的屏幕上。 我的编译器也不支持itoa,所以我也不能使用它。

1 个答案:

答案 0 :(得分:-1)

我假设您使用ANSI C。

您无法使用itoa,因为它不是标准功能。

sprintfsnprintf致力于此。

由于您不想使用sprintf,请自行创建itoa

#include <stdio.h>

char* itoa(int i, char b[]){
    char const digit[] = "0123456789";
    char* p = b;
    if(i<0){
        *p++ = '-';
        i *= -1;
    }
    int shifter = i;
    do{ //Move to where representation ends
        ++p;
        shifter = shifter/10;
    }while(shifter);
    *p = '\0';
    do{ //Move back, inserting digits as u go
        *--p = digit[i%10];
        i = i/10;
    }while(i);
    return b;
}

原始答案:here