我想将int转换为字符串而不在屏幕上打印任何内容。现在我使用了sprintf,但这也将int打印到我的屏幕上。 我的编译器也不支持itoa,所以我也不能使用它。
答案 0 :(得分:-1)
我假设您使用ANSI C。
您无法使用itoa
,因为它不是标准功能。
sprintf
或snprintf
致力于此。
由于您不想使用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