itoa是非标准C语言和C++语言扩展功能,而snprintf是标准的,虽然一般编译器编译都能通过,但在OJ上提交,itoa可能编译不通过(我用itoa函数在DevC++中编译通过,但提交时编译错误,改成snprintf就好啦)。
举个栗子(将n转换成字符串,存入数组str并输出):
#include<cstdio>
#include<cstdlib>
#include<cstring>
int main(){
int n=123;
char str[20];
//itoa(n,str,10); 该句与下一条语句作用相同
snprintf(str,sizeof(str),"%d",n);
for(int i=0;i<strlen(str);i++){
printf("%c ",str[i]);
}
}
//运行结果:
1 2 3
注:itoa(n,str,10) 将正整数n转换成字符串,存储在字符串数组str中,10表示按照十进制转化。
snprintf(str,sizeof(str),"%d",n) 将n转换成字符串复制到str数组中。