将一个整数转换成字符串,拿到这个题目首先想到标准库里提供了哪些可用的函数。
如果是在window下编程,可以用系统库函数itoa实现该功能,itoa函数原型如下:
char* itoa(int value,char* string,int radix);
该函数的功能是将任意整型数字转换成为字符串,value是输入的整数,string是返回结果用的字符串数组,而radix是进制标记。
然而,itoa并不是标准函数,这意味着并不是所有的编译器都能使用它,在Linux环境下,要实现该转换可以用sprintf
int sprintf( char *buffer, const char *format, [ argument] … );
该函数数为字符串格式化函数,使用示例如下:
int number = 12345;
char string[25];
sprintf(string, "%d", number);
printf("integer = %d string = %s\n", number, string);
然而在C++面试笔试中,常常要求不能使用标准库函数,自己实现函数intToStr,实现的思路是:每一位整数+‘0’得到相应字符串的ASCII值。
char * intToStr(int num,char * string)