atoi函式簡單實現
1. 看一下atoi函式的要求,通過 man 3 atoi。
原型
#include
int aoti(const char *str);
描述
The atoi() function converts the initial portion of the string pointed to bystr to int representation.
atoi函式把str字串初始有效部分轉換成int型別。
因為atoi返回int,出錯返回-1是不可取的,因為-1也是有效的,返回0,同樣不可取。但是根據其描述,如果str完全無效那麼返回的應該是0,否則轉換其初始有效部分。
知道了這些,基本就可以實現了。
標準庫實現是呼叫strol,然後呼叫strtoul。可以識別八進位制,十六進位制字元。
IMPLEMENTATION NOTES The atoi() function is not thread-safe and also not async-cancel safe. Theatoi() function has been deprecated bystrtol() and should not be used in new code.
原型
#include
int aoti(const char *str);
描述
The atoi() function converts the initial portion of the string pointed to bystr to int representation.
atoi函式把str字串初始有效部分轉換成int型別。
因為atoi返回int,出錯返回-1是不可取的,因為-1也是有效的,返回0,同樣不可取。但是根據其描述,如果str完全無效那麼返回的應該是0,否則轉換其初始有效部分。
知道了這些,基本就可以實現了。
點選(此處)摺疊或開啟
- #include
- int
- my_atoi(const char *str)
- {
- int result;
- char sign;
- for (; str && isspace(*str); ++str)
- ; /* 跳過空白,換行,tab*/
-
- if (!str)
- return 0;
- sign = *str == '+' || *str == '-' ? *str++ : '+'; /* 處理符號 */
- for (result = 0; str && isdigit(*str); ++str) /*轉換有效部分 */
- result = result * 10 + *str - '0'; /* FIXME: 沒有考慮溢位 */
- return (sign == '+' ? result : -result);
- }
標準庫實現是呼叫strol,然後呼叫strtoul。可以識別八進位制,十六進位制字元。
IMPLEMENTATION NOTES The atoi() function is not thread-safe and also not async-cancel safe. Theatoi() function has been deprecated bystrtol() and should not be used in new code.
相關文章
- Python-split()函式用法及簡單實現Python函式
- 自己實現一個簡單可變引數函式函式
- [無心插柳]簡單實現常用的表單校驗函式函式
- 利用回撥函式實現簡單的輪播圖效果函式
- 非同步之三:Async 函式的使用及簡單實現非同步函式
- PostgreSQL 原始碼解讀(249)- 實現簡單的鉤子函式SQL原始碼函式
- 教你如何運用python實現簡單檔案讀寫函式Python函式
- js中實現單分派泛函式JS函式
- gin websocket 簡單分散式實現Web分散式
- 幾個簡單又實用的PHP函式PHP函式
- PostgreSQL 原始碼解讀(216)- 實現簡單的擴充套件函式SQL原始碼套件函式
- PHP 實現簡單阻塞分散式鎖PHP分散式
- 函式節流實現滑動下拉選單函式
- 快取函式的簡單使用快取函式
- 簡單介紹JS函式防抖和函式節流JS函式
- 迴圈單連結串列建構函式、解構函式C++實現函式C++
- 實用函式式 Java (PFJ)簡介函式Java
- 簡單探索Python中的filter函式PythonFilter函式
- 簡單的檔案快取函式快取函式
- python 內建函式簡單總結Python函式
- 如何實現簡單的分散式鏈路功能?分散式
- 函式計算持續交付入門:雲效+FC實現 簡單IP查詢工具函式
- MySQL排名函式實現MySql函式
- fcntl函式實現dup函式
- MySQL分析函式實現MySql函式
- AspectJ簡單實現
- FastClick簡單實現AST
- Promise 簡單實現Promise
- ReadableStream 簡單實現
- Express 簡單實現Express
- match函式簡單介紹以及與index函式結合應用函式Index
- 技術卡片 - PHP 鏈式呼叫的簡單實現PHP
- 對高階函式的簡單認識函式
- 簡單歡樂的依賴注入函式依賴注入函式
- 三角函式形成簡單的波浪函式
- 聊聊損失函式1. 噪聲魯棒損失函式簡析 & 程式碼實現函式
- JavaScript的迭代函式與迭代函式的實現JavaScript函式
- 從封裝函式到實現簡易版自用jQuery (二)封裝函式jQuery
- 『無為則無心』Python函式 — 28、Python函式的簡單應用Python函式