博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
atoi & itoa 的模拟实现
阅读量:2230 次
发布时间:2019-05-09

本文共 1099 字,大约阅读时间需要 3 分钟。

  • 库函数 atoi 的模拟实现
    用法:将字符串里的数字字符转化为整形数,返回整形值。
int my_atoi(char* ptr){
assert(ptr); int flag = 0; int num = 0; char* pch = ptr; while (*ptr) {
if (*pch == '-') {
flag = 1; } else if (*ptr>'0'&&*ptr<'9') {
num = num*10 + *ptr - '0'; } ptr++; } if (flag == 1) {
return -num; } else {
return num; }}int main(){
char *tr = "1234";//"+1234"、"-1234" my_atoi(tr); printf("%d\n",my_atoi(tr)); system("pause"); return 0;}
  • 库函数 itoa 的模拟实现
    用法:将整形转化为字符串,返回字符串。
char* my_itoa(int num, char* array){
assert(array); int i = 0; int flag = 0; if (num < 0) {
flag = 1; num = -num; } while (num) {
array[i] = num % 10 + '0'; num = num / 10; ++i; }//此时的i已经到4 if (flag == 1) {
array[i++] = '-';//注意i的变化 } array[i] = '\0';//注意i的变化 int begin = 0; int end = i-1;//注意i的变化 while (end > begin) {
char tmp = array[end]; array[end] = array[begin]; array[begin] = tmp; --end; ++begin; } return array;}int main(){
int x; scanf("%d", &x); char arr[100]; printf("%s\n", my_itoa(x, arr)); system("pause"); return 0;}

上面就是两个库函数的模拟实现,如果有什么问题或者有更好的方法可以评论或私信。

转载地址:http://crwbb.baihongyu.com/

你可能感兴趣的文章
用一个小游戏入门深度强化学习
查看>>
5 分钟入门 Google 最强NLP模型:BERT
查看>>
初探Java设计模式4:一文带你掌握JDK中的设计模式
查看>>
初探Java设计模式5:一文了解Spring涉及到的9种设计模式
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解3:一文读懂Iterator,fail-fast机制与比较器
查看>>
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
查看>>
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>
Java集合详解6:这次,从头到尾带你解读Java中的红黑树
查看>>
Java集合详解8:Java集合类细节精讲,细节决定成败
查看>>
Java并发指南1:并发基础与Java多线程
查看>>
Java并发指南2:深入理解Java内存模型JMM
查看>>
Java并发指南5:JMM中的final关键字解析
查看>>
Java并发指南6:Java内存模型JMM总结
查看>>
Java并发指南7:JUC的核心类AQS详解
查看>>
Java并发指南8:AQS中的公平锁与非公平锁,Condtion
查看>>
Java网络编程和NIO详解6:Linux epoll实现原理详解
查看>>
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解8:浅析mmap和Direct Buffer
查看>>