一、什麼是strtoull函數
strtoull函數是一個C標準庫函數,用於將字元串轉換為無符號長整型數。此函數對字元串中的數字進行解釋,將其轉換為相應的無符號長整型數值,並返回該值。strtoull函數的頭文件為stdlib.h。
以下是strtoull函數的函數原型:
unsigned long long strtoull(const char *str, char **endptr, int base);
其中,str是要轉換的字元串,endptr是指向字元串的指針,在函數的返回值中,如果指針不為NULL,則指針會被賦值為指向字元串中第一個未被轉換的字元的位置。base表示轉換進位數,可以是2、8、10、16進位,如果為0表示自動識別進位數。
二、使用strtoull函數進行無符號長整型數與字元串的轉換
無符號長整型數與字元串之間的轉換可以通過以下代碼實現:
#include <stdio.h> #include <stdlib.h> int main() { char *str = "12345"; char *endptr = NULL; unsigned long long num; num = strtoull(str, &endptr, 10); printf("num = %llu\n", num); return 0; }
上述代碼中,將字元串”12345″轉換為無符號長整型數,其轉換結果為num=12345。
另外,endptr指向字元串中第一個未被轉換的字元「\0」。
三、示例代碼
以下是一個完整的示例代碼,演示了如何使用strtoull函數進行字元串與無符號長整型之間的轉換:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char str[100]; char *endptr = NULL; unsigned long long num; // convert string to unsigned long long strcpy(str, "9876543210"); num = strtoull(str, &endptr, 10); printf("num = %llu\n", num); printf("endptr = %s\n\n", endptr); // convert unsigned long long to string memset(str, 0, sizeof(str)); sprintf(str, "%llu", num); printf("str = %s\n", str); return 0; }
上述代碼中,使用strcpy函數將字元串”9876543210″複製到str數組中,然後使用strtoull函數將其轉換為無符號長整型數,並輸出轉換結果。接著,使用sprintf函數將無符號長整型數轉換為字元串,並輸出轉換結果。
四、小結
strtoull函數是將字元串轉換為無符號長整型數的常用函數之一。通過以上示例代碼,可以看到如何使用strtoull函數進行字元串與無符號長整型之間的轉換。需要注意的是,在進行轉換時,需要指定進位,否則可能會得到意想不到的結果。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/304640.html