当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 strtoll用法及代码示例


C语言stdlib头文件(stdlib.h)中strtoll函数的用法及代码示例。

用法:

long long int strtoll (const char* str, char** endptr, int base);
将字符串转换为long long整数
解析C-stringstr将其内容解释为指定内容的整数base,它以type的值形式返回long long int。如果endptr不是一个空指针,该函数还会设置endptr指向数字后的第一个字符。

该函数的运作方式类似于strtol解释字符串,但产生类型的数字long long int(参考strtol有关解释过程的详细信息)。

参数

str
C-string以整数表示。
endptr
引用类型的对象char*,其值由函数设置为中的下一个字符str数值之后。
此参数也可以是空指针,在这种情况下不使用。
base
确定有效字符及其解释的数字基数(基数)。
如果是这样0,所用的底数由序列中的格式决定(请参见strtol有关详细信息)。

返回值

成功后,函数将转换后的整数返回为long long int值。
如果无法执行有效的转换,则返回零值(0LL)。
如果读取的值超出可表示的值范围达long long int,函数返回LLONG_MAX或者LLONG_MIN(在<climits>), 和errno被设定为ERANGE

示例

/* strtoll example */
#include <stdio.h>      /* printf, NULL */
#include <stdlib.h>     /* strtoll */

int main ()
{
  char szNumbers[] = "1856892505 17b00a12b -01100011010110000010001101100 0x6fffff";
  char* pEnd;
  long long int lli1, lli2, lli3, lli4;
  lli1 = strtoll (szNumbers, &pEnd, 10);
  lli2 = strtoll (pEnd, &pEnd, 16);
  lli3 = strtoll (pEnd, &pEnd, 2);
  lli4 = strtoll (pEnd, NULL, 0);
  printf ("The decimal equivalents are: %lld, %lld, %lld and %lld.\n", lli1, lli2, lli3, lli4);
  return 0;
}


可能的输出:

The decimal equivalents are: 1856892505, 6358606123, -208340076 and 7340031



相关用法


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C strtoll function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。