首页 > 编程知识 正文

itoa函数报错,itoa函数源代码

时间:2023-05-05 07:49:58 阅读:220186 作者:4079

itoa是广泛使用的非标准C语言和C++语言扩展功能。但因为它是一个非标准的C / C++语言功能,因此不能好好的被所有编译器使用。在大多数Windows下的编译器通常在头文件包含非标准函数。
解决方案:
1.使用sprintf代替
2.实现itoa

举例:sprintf

int main(){char arr[10];int a=123;sprintf(arr,"%d",a);cout<<arr<<endl;}

itoa函数源代码

#include <stdlib.h> #include <stdio.h> char *myitoa(int num,char *str,int radix);int main() { int number = -123456; char string[25]; myitoa(number, string, 16); printf("integer = %d string = %sn", number, string); return 0; } /* 实现itoa函数的源码 */ char *myitoa(int num,char *str,int radix) { /* 索引表 */ char index[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; unsigned unum; /* 中间变量 */ int i=0,j,k; /* 确定unum的值 */ if(radix==10&&num<0) /* 十进制负数 */ { unum=(unsigned)-num; str[i++]='-'; } else unum=(unsigned)num; /* 其它情况 */ /* 逆序 */ do { str[i++]=index[unum%(unsigned)radix]; unum/=radix; }while(unum); str[i]=''; /* 转换 */ if(str[0]=='-') k=1; /* 十进制负数 */ else k=0; /* 将原来的“/2”改为“/2.0”,保证当num在16~255之间,radix等于16时,也能得到正确结果 */ char temp; for(j=k;j<=(i-k-1)/2.0;j++) { temp=str[j]; str[j]=str[i-j-1]; str[i-j-1]=temp; } return str; }
margin

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。