strtol、wcstol、_strtol_l、_wcstol_l

strtol、wcstol、_strtol_l、_wcstol_l

Visual Studio 2013

将字符串转换成长整数值。

long strtol(
   const char *nptr,
   char **endptr,
   int base 
);
long wcstol(
   const wchar_t *nptr,
   wchar_t **endptr,
   int base 
);
long _strtol_l(
   const char *nptr,
   char **endptr,
   int base,
   _locale_t locale
);
long _wcstol_l(
   const wchar_t *nptr,
   wchar_t **endptr,
   int base,
   _locale_t locale
);

nptr

要转换的 null 终止的字符串。

endptr

指向停止扫描字符的指针。

base

待使用的数基。

locale

要使用的区域设置。

除非表示形式导致溢出,在这种情况下,它将返回 LONG_MAX 或 LONG_MIN,否则 strtol 返回该字符串nptr 中表示的值。 如果不能执行转换,则 strtol 返回 0。 wcstol 返回值类似于 strtol 对于两个函数,如果出现溢出或下溢,请将 errno 设置为 ERANGE

有关这些内容的详细信息以及其他返回代码,请参见 _doserrno、errno、_sys_errlist 和 _sys_nerr

strtol 函数将 nptr 转换为 long。 strtol 在发现第一个不能将其识别为数字的字符时,将停止读入字符串nptr 这可能是终止空字符,也可能是大于或等于 base 的第一个数字字符。

wcstol 是 strtol 的宽字符版本;其 nptr 参数是宽字符字符串。 否则这些函数具有相同行为。

一般文本例程映射

TCHAR.H 例程

未定义 _UNICODE & _MBCS

已定义 _MBCS

已定义 _UNICODE

_tcstol

strtol

strtol

wcstol

_tcstol_l

_strtol_l

_strtol_l

_wcstol_l

当前区域设置的 LC_NUMERIC 类别设置确定 nptr; 中基数字符的识别;有关详细信息,请参阅 setlocale。 _l 后缀的函数使用当前区域设置;_strtol_l 和 _wcstol_l 与无 _l 后缀的相应函数相同,不同之处在于它们改用传递的区域设置。 有关详细信息,请参阅区域设置

如果 endptr 不为 NULL,停止扫描的字符指针将存储在 endptr 指向的位置。 如果不能指向转换(未找到有效数字或指定了无效基础),nptr 的值存储在 endptr 指向的位置。

strtol 希望 nptr 指向以下格式的字符串:

[whitespace] [{+  }] [0 [{ X }]] [digits]

被忽略的是whitespace 可能包含空格和制表符;digits 是一个或多个十进制数字。 不符合此窗体的首个字符将终止扫描。 如果 base 在 2 和 36 之间,则将它用作数字的基础。 如果 base 是 0,则通过使用 nptr 所指向的初始字符串字符确定基项。 如果首个字符为0,而第二个字符不为“X”或“Y”,该字符串则被解读为八进制整数。 如果首个字符为“0”,而第二个字符为“X”或“Y”,该字符串则被解读为十六进制整数。 如果第一个字符为“1”到“9”,该字符串被解读为十进制整数。 字母“a”到“z”(或“A”到“Z”)赋值 10 到 35;只允许使用赋值小于 base 的字母。 在基项范围外的第一个字符将终止扫描。 例如,如果 base 为 0 且扫描的第一个字符也为“0”,则会假定为一个八进制整数且字符“8”或“9”将会终止扫描。

例程

必需的标头

strtol

<stdlib.h>

wcstol

<stdlib.h> 或 <wchar.h>

_strtol_l

<stdlib.h>



转自http://msdn.microsoft.com/library/windows/apps/w4z2wdyc.aspx
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值