C 庫函數(shù) - strtol()

C 標(biāo)準(zhǔn)庫 - <stdlib.h> C 標(biāo)準(zhǔn)庫 - <stdlib.h>

描述

C 庫函數(shù) long int strtol(const char *str, char **endptr, int base) 把參數(shù) str 所指向的字符串根據(jù)給定的 base 轉(zhuǎn)換為一個(gè)長整數(shù)(類型為 long int 型),base 必須介于 2 和 36(包含)之間,或者是特殊值 0。

聲明

下面是 strtol() 函數(shù)的聲明。

long int strtol(const char *str, char **endptr, int base)

參數(shù)

  • str -- 要轉(zhuǎn)換為長整數(shù)的字符串。
  • endptr -- 對類型為 char* 的對象的引用,其值由函數(shù)設(shè)置為 str 中數(shù)值后的下一個(gè)字符。
  • base -- 基數(shù),必須介于 2 和 36(包含)之間,或者是特殊值 0。

返回值

該函數(shù)返回轉(zhuǎn)換后的長整數(shù),如果沒有執(zhí)行有效的轉(zhuǎn)換,則返回一個(gè)零值。

實(shí)例

下面的實(shí)例演示了 strtol() 函數(shù)的用法。

#include <stdio.h>
#include <stdlib.h>

int main()
{
   char str[30] = "2030300 This is test";
   char *ptr;
   long ret;

   ret = strtol(str, &ptr, 10);
   printf("數(shù)字(無符號長整數(shù))是 %ld\n", ret);
   printf("字符串部分是 |%s|", ptr);

   return(0);
}

讓我們編譯并運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:

數(shù)字(無符號長整數(shù))是 2030300
字符串部分是 | This is test|

C 標(biāo)準(zhǔn)庫 - <stdlib.h> C 標(biāo)準(zhǔn)庫 - <stdlib.h>