在minix2.0源**中,有將字串型別轉換為int、long、double型別的函式實現,相關的實現函式分別在atoi.c、atol.c、atof.c檔案中,我們來逐一學習其中的原始碼:
int atoi(register constchar *nptr)
while (isdigit(*nptr))
return minus ? -total : total;
}
1long atol(register const
char *nptr)212
while (isdigit(*nptr))
16return minus ? -total : total;
17 }
1double atof(const
char *nptr)
2
ps:在《c程式語言》中ritchie提供了一種atof的實現:
1double atof(char *s)219
return sign * val /power;
20 }
後面的練習4-2,要求我們對atof函式進行擴充套件,使它能夠處理形如123.45e-6這樣的科學表示法
1 #include23double atof(char *s)
422 temp = sign * val /power;
23if (s[i] == '
e' || s[i] == 'e'
)24 i++;
25 flag =s[i];
26if (flag == '
-' || flag == '+'
)27 i++;
28for (exp = 0; isdigit(s[i]) && s[i] !='
\0'; i++)
31if (flag == '+'
) else
36return
temp;37}
3839
intmain()
40
Minix中的字元判定ctype c
minix中關於如何判定乙個字元的型別,如大寫 小寫 數字 如果採用傳統的方法,如判斷乙個字母大寫的方法 if c a c z return true 但是如果判斷乙個字元是數字或是字母,則採用下面的 if c z c a c z c a c 0 c 9 return true 如果假設更多的侷限,...
minix學習歷程
note 以下所有操作都是在fedora core 5下完成的 bochs的安裝和使用 如何在bochs下利用root.mnx和usr.mnx啟動minix204 步驟 部分 最好通讀真個檔案 c.為了在bochs 下啟動minix204 我們只需要將a 步驟中的intel 2.0.4 i386 下...
minix中時間轉換的實現(asctime c)
在minix2.0源 中,有相當經典的時間轉換函式實現 src src lib ansi asctime.c 今天我們就來分析一下asctime.c中的原始碼 首先引入幾個相關的標頭檔案 1 time.h 主要的結構體與相關定義 struct tm char asctime const struct...