最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C語言字符串數(shù)字轉(zhuǎn)換為數(shù)字

2022-07-18 03:26 作者:鳧水億  | 我要投稿

本章不使用<stdlib.h>中提供的字符串數(shù)字轉(zhuǎn)換為數(shù)字的函數(shù)

char *itoa(int _Val, char *_DstBuf, int _Radix);//該函數(shù)是非標準庫所提供的

up主提供一種C語言字符串數(shù)字轉(zhuǎn)換為數(shù)字的思路:

拆分法

如圖所示,將十位,百位單獨計算出來,然后加上個位得到完整的數(shù)字。

學過基礎(chǔ)的朋友應(yīng)該了解過ASCII字符集,在0~127的范圍內(nèi)包含了控制字符,顯示字符,其中48~58為數(shù)字字符,即0~9。轉(zhuǎn)換個位的字符數(shù)字很輕松,可是十分位、百分位、及更大的數(shù)就不好計算了。

為此,up做了很多草稿,分析他們的規(guī)律變化:

冪次不同

查詢資料,C標準庫有一個函數(shù)可以幫助我們升冪:

double pow (double base, double exponent);

這樣夠了嗎?當然沒有,好戲才剛剛開始。

up決定手撕冪次函數(shù),用自己的辦法實現(xiàn)一遍,以便加深對C語言的理解。


經(jīng)過幾個小時的苦思冥想,發(fā)現(xiàn)了好幾種方法:循環(huán)遍歷相乘,遞歸相乘。遞歸相乘是最先想到的,這里就講講如何使用遞歸實現(xiàn)功能。

如果不了解遞歸,這里講個簡單的例子:俄羅斯套娃。

以下的代碼展示:

在第四行我們看到了遞歸的發(fā)生——函數(shù)調(diào)用自身。

遞歸由兩部分組成,傳遞與回歸。函數(shù)結(jié)構(gòu)大致分為兩個部分,一、是檢驗數(shù)據(jù)是否達到遞歸出口的條件,二、是篩選遞歸之外的情況,然后進行處理。

第一個是 if?,判斷相乘剩余的次數(shù),如果剩余次數(shù)在1次以上,則繼續(xù)傳遞。

第二個 else if ,篩選特例數(shù)據(jù),當一開始提供的次方數(shù)為0時的情況。

第三個是 else ,一旦pow為1時,回歸開始發(fā)生。


以下是樣例代碼,有些許潦草,但包含了一些標記,希望對你們有所幫助:

結(jié)果輸出:

還有一種方法是遍歷相乘法

原理是通過變量,控制相乘的次數(shù)。

以下提供簡短的代碼:

但代碼并不牢靠,還要對 pow 為 0 時的特殊情況進行考慮,在這里就不再贅述。


C語言字符串數(shù)字轉(zhuǎn)換為數(shù)字的評論 (共 條)

分享到微博請遵守國家法律
丹寨县| 金门县| 临沭县| 潞城市| 海盐县| 梅河口市| 泾阳县| 东阳市| 富裕县| 和顺县| 苍山县| 九龙县| 丰宁| 长治市| 扶沟县| 通江县| 永宁县| 绩溪县| 涿鹿县| 屏南县| 中超| 鄯善县| 长治市| 亳州市| 外汇| 中宁县| 宁河县| 库尔勒市| 轮台县| 昂仁县| 施甸县| 黎平县| 金堂县| 津市市| 湖南省| 嘉义市| 革吉县| 海南省| 金寨县| 德惠市| 布尔津县|