Linux C编程下没有 itoa()函数的问题
用ubuntu linux c编程,发现Linux内核中只有atoi()函数,被包含在stdlib.h头文件中,而没有itoa()函数,网上查了有一个实现了itoa()函数的代码
void itoa ( unsigned long val, char *buf, unsigned radix ) { char *p; /* pointer to traverse string */ char *firstdig; /* pointer to first digit */ char temp; /* temp char */ unsigned digval; /* value of digit */ p = buf; firstdig = p; /* save pointer to first digit */ do { digval = (unsigned) (val % radix); val /= radix; /* get next digit */ /* convert to ascii and store */ if (digval > 9) *p++ = (char ) (digval - 10 + 'a '); /* a letter */ else *p++ = (char ) (digval + '0 '); /* a digit */ } while (val > 0); /* We now have the digit of the number in the buffer, but in reverse order. Thus we reverse them now. */ *p-- = '\0 '; /* terminate string; p points to last digit */ do { temp = *p; *p = *firstdig; *firstdig = temp; /* swap *p and *firstdig */ --p; ++firstdig; /* advance to next two digits */ } while (firstdig < p); /* repeat until halfway */ }
不过,测试时发现这个实现将数字转换成了乱码。比较简洁的方法是用sprintf()函数代替。具体代码如下:
#include <stdlib.h>#include <stdio.h>int main(){int number = 429496729;char string[25];sprintf(string, "%d", number);printf("integer = %d string = %s\n", number, string);return 0;}
此时string就是转换后的字符串值
Linux C编程下没有 itoa()函数的问题相关推荐
- linux系统编程下的open函数使用方法
目录 1.句柄(file descriptor 简称fd) 2.使用open前需要先包含头文件 3.参数说明 3.1 参数1(pathname) 3.2 参数2(flags) 3.3 参数3(mode ...
- Linux下无法使用 itoa 函数的解决方法
起因 在Linux环境下进行C++编程,使用 itoa 函数时出现以下错误: ' itoa ' was not declared in this scope. 翻阅Linux下的 stdlib.h 头 ...
- Linux系统编程 37 -makefile2个函数和clean
Linux系统编程 37 -makefile2个函数和clean 学习笔记 一个makefile 就是用一个个规则凑在一起 2个函数 wildcard patsubst wildcard 百搭牌,通配 ...
- itoa 头文件 linux,Linux下的itoa函数
linux需要itoa函数,下面我就提供一份跨平台的itoa函数. //return the length of result string. support only 10 radix for ea ...
- Linux网络编程 | 信号 :信号函数、信号集、统一事件源 、网络编程相关信号
文章目录 信号函数 信号集 统一事件源 网络编程相关信号 Linux 进程信号:信号的概念.生命周期.产生流程.阻塞 在半年前我写过一篇博客介绍了Linux中信号的概念以及处理流程,这次再来深入的讲一 ...
- Linux进程编程(PS: exec族函数、system、popen函数)
目录 1.进程相关概念 程序和进程 查看系统中的进程 ps指令 top指令 进程标识符 使用getpid()获取 父进程,子进程 2.创建进程fork 进程创建发生了什么--C程序的存储空间如何分配 ...
- linux网络编程--shut_down和close()函数的区别
在Linux C网络编程中,一共有两种方法来关闭一个已经连接好的网络通信,它们就是close函数和shutdown函数,它们的函数原型分别为: 1 #include<unistd.h> 2 ...
- Linux网络编程——I/O复用函数之epoll
https://blog.csdn.net/lianghe_work/article/details/46544567 一.epoll概述 epoll 是在 2.6 内核中提出的,是之前的 selec ...
- linux系统编程3—文件存储函数
文章目录 1.innode 2.dentry 3.stat函数 4.lstat函数 5.access函数.chmod函数.truncate函数 6.link函数 7.unlink函数 unlink的特 ...
最新文章
- torch 特征对齐
- 解决PHP大文件上传问题
- LeetCode 75. Sort Colors (python一次遍历,模拟三路快排)
- 编程算法 - 将排序数组按绝对值大小排序 代码(java)
- python docx 复制_python制作单词抽测题(word版)(一)
- 我的Markdown的利器——Markdown Here、有道云笔记、iPic
- 树莓派4b安装windows iot_树莓派4B基于python3安装opencv4全教程
- 南大通用发布数据库新产品 携手用户伙伴点亮世界级
- jquery 获取节点各种方法
- pgAdmin 4 v4.0 发布
- 常见的几类矩阵(正交矩阵、酉矩阵、正规矩阵等)
- 数据挖掘—GEO,TCGA,Oncomine联合(三)GEO数据的下载和数据质量分析
- lpx寒假作业案例11
- react-native >0.69版本 链接@ant-design/icons-react-native
- 《弃子长安》第九章 大漠金钩
- 艾永亮:如何“睡”出一只11亿美元的独角兽?
- 【C++】JOISC 2020 Day3原题+翻译+解析+代码
- 余压监控系统在绿建中的应用
- Java系列——五子棋的实现
- 1.什么是Spark