我需要从用户输入中获取一个数组大小。对我来说,将输入存储为 size_t
似乎是很自然的选择,但是当我寻找合适的 strto...()
函数时,却没有找到任何一个适用于 size_t
的函数。因此,我只好使用 strtoull()
,因为 unsigned long long
至少保证具有 64 位,并且我正在使用 C99。但是,我想知道从字符串中获取 size_t
的最佳方法是什么——比如,在 ANSI C 中。
编辑:
为了澄清,我不需要字符串长度!用户将以字符串形式输入大缓冲区的大小,例如 "109302393029
"。我需要获取该数字并将其存储为 size_t
。当然,我可以使用 strtol()
或甚至 atoi()
,但这似乎是一个笨拙的方法(size_t
可能容纳比 int
更大的值,而且我希望用户能够输入可寻址空间中的任何值)。
strlen
对于指向数组的指针无效。 - Tim Biegeleisenunsigned long long
作为变量类型。似乎size_t
不太可能比它更大。 - M.M