程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> c語言簡單求助問題!

c語言簡單求助問題!

編輯:C語言問答

c語言簡單求助問題!

20

int f(char *s)
{int k=0;
while(*s) k=k*10+*s++-'0';
retuen(k);
}

以f("1234"),調用該函數怎麼編寫?結果?

最佳回答:

輸出結果:1234

這是一個字符串轉整數的程序:從頭開始,依次取出字符串中的字符,當前整數向前進一位(x10),並將取出的字符作為個位數添加到整數的末尾。其中,s++表示字符串指針向後移,取下一個字符;*s-'0',當前字符跟 '0’ 的 ASCII 編碼之差,就是當前字符字面顯示的數字(比如 '4'-'0’=4,實際上是 ASCII 編碼之差 52-48=4 )

 

完整的程序:

#include <stdio.h>

int str_to_num(char *s) {

    int k=0;
    while(*s)  k = k*10 + *s++ - '0';
    return k;
}

int main() {

    char *s = "1234";

    printf("string value: %s, number value: %d\n", s, str_to_num(s));

    getchar();

    return 0;

}

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved