C ++:参考:C语言运行库:cstdlib(stdlib.h中):strtoul
字符串转换为无符号长整型 解析C字符串str的解释其作为一个无符号指定的基础,这是一个无符号长整型值返回整数的内容。
函数的第一个尽可能多的空白字符丢弃,直到第一个非空白字符被发现。然后,从这个字出发,把尽可能多的字符是有效的下列语法基础上的参数而定,并解释他们作为一个数值。最后,一个向第一个字符后,在海峡中的整数表示指针所指向的对象中存储endptr。
如果基值是零,语法预期类似于整数常量,它是由继承形成的:
一个可选的前缀表示八进制或十六进制基地(“0”或“0X”respectivelly)
为十进制数字(如果没有相应的前缀被指定)或任一八进制或十六进制数字的序列,如果存在一个特定的前缀
如果基值介于2和36,预期为整数的格式是一个有效的数字继承和/或需要代表指定基数从0开始(整数字母'和注册到'z'/' Z'的基数为36)。如果基是16,该序列可以选择前面的“0x”或“0X的”,这是被忽略。
如果非空白字符str中的第一个序列是不是一个有效的整数上述定义,或者如果没有这样的序列存在,因为无论str为空或只包含空格字符,不执行任何转换。
参数
str
C字符串包含一个无符号整数表示。
endptr
参考到一个char *类型,其值是由str中的数值后,下一个字符集函数的对象。
这个参数也可以是一个空指针,在这种情况下不使用。
返回值
如果成功,函数返回一个长整型值转换成整数。
如果没有有效的转换可以执行,则返回零值。
如果正确的值超出范围的表示值,ULONG_MAX的返回,一个全局变量errno设置为ERANGE。
范例
/* strtoul example */
#include <stdio.h>
#include <stdlib.h>
int main ()
{
char szInput [256];
unsigned long ul;
printf ("Enter an unsigned number: ");
fgets (szInput,256,stdin);
ul = strtoul (szInput,NULL,0);
printf ("Value entered: %lu. Its double: %lu\n",ul,ul*2);
return 0;
}
本文摘自: 编程十万个为什么(http://www.) 详细出处请参考:http://www.