如何將字符串中的10進制數和16進制數提取出來,看以下代碼:
#include運行結果:typedef char TUINT8 ; typedef int TUINT32; TUINT32 Read_DecNumber(const TUINT8* str); TUINT32 Read_HexNumber(const TUINT8* str); int main(void) { int ret = Read_DecNumber("1000"); int d = Read_HexNumber("A"); printf("將字符串中的數字轉化為10進制數 :%d\n",ret); printf("將字符串中的16進制數轉化為10進制數 :%d\n",d); return 0 ; } //將字符串中的數字轉化為10進制數 TUINT32 Read_DecNumber(const TUINT8* str) { TUINT32 value; if (! str) { return 0; } value = 0; while ((*str >= '0') && (*str <= '9')) { value = value*10 + (*str - '0'); str++; } return value; } //將字符串中的16進制數轉化為10進制數 TUINT32 Read_HexNumber(const TUINT8* str) { TUINT32 value; if (! str) { return 0; } value = 0; while (1) { if ((*str >= '0') && (*str <= '9')) { value = value*16 + (*str - '0'); } else if ((*str >= 'A') && (*str <= 'F')) { value = value*16 + (*str - 'A') + 10; } else if ((*str >= 'a') && (*str <= 'f')) { value = value*16 + (*str - 'a') + 10; } else { break; } str++; } return value; }