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>头文件里找不到怎么办的主要内容,如果未能解决你的问题,请参考以下文章