有关itoa编译报错解决与itoa函数源码实现
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 = %s\n", 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]='\0'; /* 转换 */ 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;
}
有关itoa编译报错解决与itoa函数源码实现相关推荐
- firefly AIO-RK3399J Linux SDK编译报错解决
Firefly AIO-RK3399J Linux SDK编译报错解决 Zhang-Zhen 2020-09-30 22:01:04 收藏 分类专栏: RK3399工作记录 文章标签: linux ...
- centos7 npm bulid编译报错解决
centos npm bulid编译报错解决: (1)npm run build报错(npm ERR! code ELIFECYCLE)的解决办法 删除以前安装的依赖,删除package锁的版本: r ...
- Keil MDK 工程输入中文汉字编译报错解决办法
Keil MDK 工程输入中文汉字编译报错解决办法 官方说明:https://www.keil.com/support/man/docs/armcc/armcc_chr1359124934197.ht ...
- Frambuffer_rd在Windows下的vivado 2020.1编译报错解决方法
vivado2020.1 HLS生成的IP在Windows下报错 Frambuffer_rd在Windows下的vivado 2020.1编译报错解决方法 我的解决方法: 编译过程如下 之后重新对工程 ...
- 编译报错+解决方法:错误: 找不到符号
[0]README 1)本文主要解决"错误,找不到符号" [1] console error info 1)error : E:\bench-cluster\mybatis_in ...
- 使用ButterKnife时的编译报错解决
错误一:gradle编译报错,版本不合适: 在Android studio中使用butterKnife时,出现了编译报错,根据错误提示,是缺少了gradle-3.3-all的安装包,我们从网上下载下来 ...
- [Linux Audio Driver] 移植外部CODEC常见编译报错解决(持续更新)
0. 背景 最近一直在调试codec芯片,好多代码FAE给的和平台不适配,比如结构体改了之类的,一些编译问题老是忘记,就想着顺手写下总结. 1. function definition is not ...
- 【工具】更新arduino最新esp8266库离线安装包3.0.1、ESP32库离线安装包1.0.6,库编译报错解决方法...
公众号关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 210806更新ESP32和ESP8266最新离线安装包下载地址. 因为各种 ...
- Android12 AndroidManifest使用uses-library编译报错解决
问题详情 有同事在SDK环境上将AndroidQ的Email应用搬到AndroidS上使用,使用mm命令进行编译毫无问题,可以正常生产apk,然后就自信满满提交了补丁.但是其他同事更新代码后整体编译, ...
最新文章
- ctags: 提示错误ctags: unrecognized option '--format=2'
- python 3.10 新增 switch-case 简介
- Navicat 安装+连接
- 在git上push代码时缺少Change-Id
- celery java_Python的Java Celery项目相当于什么?
- 吃鸡电脑配置清单_2020年5月份最佳组装电脑配置清单,吃鸡联盟总有满足你的...
- 14个非常棒的 JavaScript 游戏开发框架推荐
- 金志文机器人歌叫什么_MIR发布《移动机器人部署安全指南》白皮书
- 数据结构和算法——线性结构(2)循环链表和双向循环链表
- 微型计算机原理目录,微型计算机原理与应用 目录
- 小运营征战大市场,手游运营也需”千人千面” ——DT时代手游精细化运营解析
- 什么是云计算,什么是网格计算,他们之间有什么区别
- java unicode 我爱你,各语言解决\\u6211%u6211\u6211问题
- Adaptive AUTOSAR Diagnostic Manager模块介绍(一)
- 【民生】2011,骗子仍在行动
- HDU 4125 Moles 笛卡尔树 + kmp
- javascript基础学习 1
- 【VPD】使用Oracle VPD(Virtual Private Database)限制用户获取数据的范围
- 算法实验1、用C/C++编写递归函数,计算斐波那契数(Fibonacci)Fn
- Python分析【标题党】文章