c++ strtoll能處理哪些字符類型

c++
小樊
81
2024-09-15 16:19:50

strtoll 是 C++ 標(biāo)準(zhǔn)庫(kù)中的一個(gè)函數(shù),用于將字符串轉(zhuǎn)換為長(zhǎng)整型(long long)。這個(gè)函數(shù)可以處理以下字符類型:

  1. 十進(jìn)制數(shù)字(‘0’ 到 ‘9’)
  2. 十六進(jìn)制數(shù)字(‘a(chǎn)’ 到 ‘f’ 或 ‘A’ 到 ‘F’),前提是字符串以 “0x” 或 “0X” 開頭。
  3. 八進(jìn)制數(shù)字(‘0’ 到 ‘7’),前提是字符串以 ‘0’ 開頭。
  4. 正負(fù)號(hào)(‘+’ 或 ‘-’),用于表示正數(shù)或負(fù)數(shù)。

strtoll 函數(shù)的原型如下:

long long strtoll(const char* str, char** endptr, int base);

其中:

  • str 是要轉(zhuǎn)換的字符串。
  • endptr 是一個(gè)指向字符的指針,用于存儲(chǔ)轉(zhuǎn)換后剩余字符串的起始位置。如果不需要這個(gè)信息,可以傳遞 nullptr
  • base 是轉(zhuǎn)換的基數(shù),可以是 2 到 36 之間的整數(shù)。如果 base 為 0,則會(huì)根據(jù)字符串的前綴自動(dòng)判斷基數(shù)(十進(jìn)制、十六進(jìn)制或八進(jìn)制)。

注意:strtoll 函數(shù)不會(huì)跳過(guò)空格或其他分隔符。如果字符串的開頭有空格或其他無(wú)法識(shí)別的字符,轉(zhuǎn)換將失敗。在這種情況下,endptr 將指向字符串的起始位置。

0