itoa函数在<stdlib.h>头文件里找不到怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了itoa函数在<stdlib.h>头文件里找不到怎么办相关的知识,希望对你有一定的参考价值。

我用的keil uvision2 头文件里没有itoa函数,怎么办啊?

参考技术A 没有的话就要自己写.

在嵌入式系统中,flash空间有限,有时候不装入不怎么经常用的库函数,需要的时候就自己写. 嵌入式系统是没那么多空间用来浪费的.

你可以用sprintf函数
比如:
#include <stdio.h>
#include <memory.h>
void main()

char tmp[30];

//init
memset(tmp, 0x00, 30);

sprintf(tmp, "%d", 34);//此时就把数字34转成字符串34了



以上代码VC6调试通过.本回答被提问者采纳
参考技术B 这个在math.h里?

56分割字符串

#include<stdio.h>
#include<stdlib.h>
void main() {
int l_v1 = 123;
int l_v2 = 456;
char l_v3[100] = { 0 };
itoa(l_v1 + l_v2, l_v3, 10);itoa(整数,文本,进制)
puts(l_v3);
system("pause");
}

将整数转换成文本

#include<stdio.h>
#include<stdlib.h>
void main() {
char l_v1[100] = "123";
char l_v2[] = "456";
int 第一个整数, 第二个整数, 结果;
第一个整数 = atoi(l_v1);
第二个整数 = atoi(l_v2);
结果 = 第一个整数 + 第二个整数;
printf("%d\n", 结果);
system("pause");
}将文本装换成整数
#include<stdio.h>
#include<stdlib.h>
void main() {
char l_v1[100] = "123";
char l_v2[100] = "456";
int 第一个整数, 第二个整数, 结果;
sscanf(l_v1, "%d", &第一个整数);
sscanf(l_v2, "%d", &第二个整数);
结果 = 第一个整数 + 第二个整数;
printf("%d\n", 结果);
system("pause");
}

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main() {
char l_v1[100] = "5+6?7+6?8*6?";
char l_v2[100] = { 0 };
char 分割[100] = { 0 };
int 第一个整数, 第二个整数, 结果;int 索引 = 0;
char 符号;
for (size_t i = 0; i < strlen(l_v1); i++)
{
if (l_v1[i] != ‘?‘ ) {
分割[索引] = l_v1[i];
索引++;
}
else {
l_v1[i] = ‘\n‘;
sscanf(分割, "%d%c%d", &第一个整数,& 符号, &第二个整数);
switch (符号) {
case ‘-‘:
结果 = 第一个整数 - 第二个整数;
break;
case ‘+‘:
结果 = 第一个整数 + 第二个整数;
break;
case ‘*‘:
结果 = 第一个整数 * 第二个整数;
break;
case ‘/‘:
结果 = 第一个整数 / 第二个整数;
break;
}
sprintf(l_v2, "%d%c%d=%d", 第一个整数, 符号, 第二个整数, 结果);
puts(l_v2);
索引 = 0;
continue;
}

}system("pause");

}

以上是关于itoa函数在<stdlib.h>头文件里找不到怎么办的主要内容,如果未能解决你的问题,请参考以下文章

调用函数strcmp,必须包含啥头文件?stdlib.h ctype.h string.h 个各是用于哪里

itoa,atoi ##占位

错误:`itoa` 未在此范围内声明

atoi atof atol

如何用c语言把整形转换成字符型

C语言中,怎么把十进制转换成十六进制数