2009年2月17日 星期二

工作紀要:strtoul ( )

關於strtoul的問題:(轉換1~59之間的文字)
for (i = 0; i < 60; i ++) {
  sprintf (tmp1, "%2.2d", i);
  printf ("%d, %s, %d, %d %d %d\n", i, tmp1, strtoul (tmp1, 0 , 0),
    strtoul (tmp1, NULL, 10), strtoul (tmp1, NULL , 0), strtoul (tmp1, 0 , 10));
}
===>
結果:在8,9出現轉換錯誤,由此可見,strtoul的第三參數必須使用10,而不可使用0。
7, 07, 7, 7 7 7
8, 08, 0, 8 0 8
9, 09, 0, 9 0 9
10, 10, 10, 10 10 10