這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)C語言中怎么將字符串轉(zhuǎn)換為一個整數(shù),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)服務(wù)商,為中小企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站制作服務(wù),網(wǎng)站設(shè)計,網(wǎng)站托管維護等一站式綜合服務(wù)型公司,專業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競爭對手中脫穎而出創(chuàng)新互聯(lián)建站。
函數(shù):fun()
功能:將字符串轉(zhuǎn)換為一個整數(shù)
描述:
【不能使用C語言提供的字符串函數(shù)】
輸入:字符串"-1234"
輸出:整型 -1234
思路:將字符串每個位置的字符進行對應(yīng)的ASCII碼轉(zhuǎn)換
例如:字符 '0'-'9' 對應(yīng)的十進制整數(shù)是48~57,那么,將對應(yīng)的整數(shù)減去48就得到了對應(yīng)的整數(shù)
二進制 | 十進制 | 十六進制 | 字符 |
---|---|---|---|
0011 0000 | 48 | 30 | 0 |
0011 0001 | 49 | 31 | 1 |
0011 0010 | 50 | 32 | 2 |
0011 0011 | 51 | 33 | 3 |
0011 0100 | 52 | 34 | 4 |
0011 0101 | 53 | 35 | 5 |
0011 0110 | 54 | 36 | 6 |
0011 0111 | 55 | 37 | 7 |
0011 1000 | 56 | 38 | 8 |
0011 1001 | 57 | 39 | 9 |
#include<stdio.h> #include<string.h> /** 函數(shù):fun() 功能:將字符串轉(zhuǎn)換為一個整數(shù) 描述: 【不能使用C語言提供的字符串函數(shù)】 輸入:字符串"-1234" 輸出:整型 -1234 **/ long fun(char *p) { int r = 0; //數(shù)字個數(shù) long res = 0L; // 轉(zhuǎn)化后的數(shù)字 int pos = 1; // 位數(shù)*10 *100 ... int size = strlen(p); // 字符串長度 if (p[0] == '-'){ r = size - 1; } else { r = size; } // 從前往后轉(zhuǎn)換的話,需要分情況去計算。即:不是負(fù)數(shù)的話從p[0] 和 如果是負(fù)數(shù)的話需要從p[1]開始 // 所以,可以從后往前計算,循環(huán)次數(shù)是 r for (int i = 0; i < r; ++i) { res += (p[size-1-i]-48)*pos; pos *= 10; } return p[0]=='-'?-res:res; } int main(int argc, char const *argv[]) { char s[6]; printf("Enter a string: "); gets(s); long res = fun(s); printf("Convert Result: %ld\n", res); return 0; }
示例結(jié)果:
$ gcc ex1.c -o demo $ ./demo Enter a string: -1234 Convert Result: -1234 $ ./demo Enter a string: 9089 Convert Result: 9089
上述就是小編為大家分享的C語言中怎么將字符串轉(zhuǎn)換為一個整數(shù)了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前標(biāo)題:C語言中怎么將字符串轉(zhuǎn)換為一個整數(shù)
標(biāo)題路徑:http://jinyejixie.com/article18/pgihgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化、小程序開發(fā)、云服務(wù)器、品牌網(wǎng)站設(shè)計、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)