2015-11-22 85 views
0

如何将字符串转换为无符号整型?C - 将字符串转换为无符号整型

我知道strtoul()从字符串转换为unsigned long int,但我想正常int而不是long int

我一直没能找到这样做的功能。

+2

有'atoi',但它没有错误检查'strtoul'具有相同的方式。你可以使用'strtoul'并检查该值是否低于或等于'UINT_MAX'。 –

+0

使用'sscanf' ... – BLUEPIXY

+0

@BLUEPIXY:'sscanf'不一定对小于'long'的类型执行正确的范围检查。 – chqrlie

回答

2

但我想正常[无符号] int和不长] [无符号] int。

你想用strtoul(),将其分配给long unsigned int,测试结果为在[0..UINT_MAX]的范围内,如果是这样的话分配long unsigned intunsigned int

0

刚刚经过测试,发现strtoul转换为等于UINT_MAX的值,所以我猜这是有效的。

+1

可能是因为你在Windows上编程。在这个平台上'sizeof(unsigned int)== sizeof(unsigned long)',所以'strtoul'的确能完成这项工作。在更一致的64位平台上,alk的解决方案要优越得多。 – chqrlie

相关问题