整數/字串之間的轉換

來源:互聯網
上載者:User

 

分別編寫函數:1) 把一個ASCII字串轉換為一個帶正負號的整數;2) 把一個帶符號的整數轉換為一個ASCII字串。int StrToInt( char str[] ) ;void IntToStr( int num, char str[] ) ;數字字元的ASCII值有什麼特點呢?它們是顛倒順序排列的;字元”0”的ASCII值加上1等於”1”的ASCII值,以此類推。因此,數字字元的ASCII就等於這個數字加上字元”0”的ASCII值。(注意,字元”0”的ASCII值是一個不等於零的數值,而這個數值代表著字元”0”。)也就是說,只要用數字字元的ASCII值減去字元”0”的ASCII值就能得到該數位整數表示形式。也許我不知道字元”0”的ASCII值是多少,但是編譯器知道,只要寫出代碼” – ‘0’ ”,編譯器就會把它解釋為”減去字串’0’的ASCII值”。反過來,數字加上字元”0” 的ASCII值就應該得到與之對應的數字字元(也就是把數字轉為字元)了。int StrToInt( char str[] ) {int i = 0,isNeg = 0, num = 0;if ( str[0] = ="-" ){ isNeg = 1; i = 1;} while (str[i] ){ num* = 10; num+ = (str[i++] – '0');}if ( isNeg ) num* = -1;return num;}//#define MAX_DIGITS_INT 10void IntToStr( int num ,char str[] ){ int i = 0, j = 0; int isNeg = 0; char temp[MAX_DIGITS_INT + 2]; if( num<0 ) { num* = -1; isNeg = 1; } do { temp[i++] = (num%10) + '0'; num/ = 10; }while(num); if( isNeg ) temp[i++] = '-1'; while(i>0) str[j++] = temp[--i]; str[j] = '/0';}

本文轉自:http://zhidao.baidu.com/question/42102258.html?an=0&si=5

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.