腾讯面试:手写一个tostring函数,该如何实现?
前几天的远程面试,让在一个网站写代码,实现一个int to string的函数,当时答得很差,现在还是想不通,到底有没有正确的写法?
const char *ToString(int iVal){ //在这写 } int main() { printf("%s\n",ToString(123)); return 0; }
要求:不能改输出格式、函数参数和返回值,不能用stdio以外的函数库(也就是说malloc和new不能用)
C++里的itoa传入的参数包括要写入的字符地址,但是这题不让这么做,我就定义一个全局变量char ans[20],然后返回ans,面试官又把输出改成了:
printf("%s%s\n",ToString(123),ToString(456));
结果输出变成了123 123
问我为什么会这样?我说公用一块全局变量覆盖了,又问我为什么不是456覆盖123,我就答不出来了,然后又问我怎么改,还是答不出来……
求各位大佬解答……