2015年6月13日 星期六

String轉unsigned long/String轉int/String轉float

有時候會需要用到一些型態轉換的C function因此這邊寫個小範例作個記錄~

=============== test_transit.c =================

#include <stdio.h>
     
int main()
{
        unsigned long ul;
        char str1[]="A5";
        //strtoul第一個參數帶入要轉換的自串
        //strtoul第三個參數帶入"要取幾進位的數"
        ul = strtoul(str1, NULL, 16); // string to unsigned long
        printf("==== String to unsigned long value(Hex)=%lX ====\n", ul);
        printf("==== String to unsigned long value(D)=%ld ====\n", ul);


        char str2[]="123";
        int a = atoi(str2);
        printf ("==== String to integer value=%d ====\n",a+10);


        char str3[]="100.23";
        float b = atof(str3);
        printf ("==== String to float value=%f ====\n",b);

        return 0;
}

===================================================

其中String轉unsigned long是成功的(OK)
String轉int也是成功的(OK)
但String轉float的部分有點問題,印出來的值跟轉換的字串不相同,這部分還需研究(Fail!) @@"
如果有研究出結果會在上來把float的部分更新


輸出結果: