我有一个可以容纳 1000 个元素的字符数组(+1 表示 '\0')。该数组将由用户输入填充。我想知道是否有任何方法可以检查输入是否超过数组可以容纳的内容。如果我尝试添加它,程序会在我比较它的大小之前崩溃。我在考虑扩展数组并查看输入是否少于 1000 个字符,但这个想法对我来说似乎也不是一个很好的想法。
编辑:
我正在使用 std::cin.getline()
获取用户的输入
并且不能使用 Sting
类
最佳答案
我认为检查它的一种方法是在数组中找到 \0
的索引。如果位置等于或大于 1000
,则不应向其添加更多字符。
如果您使用cin.getline()
,您可以使用变量n
来指定您想要的最大字符数
istream& getline (char* s, streamsize n );
istream& getline (char* s, streamsize n, char delim );
这里可以设置n=1001
(也算终止符\0
)。
关于C++ char数组大小验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19233418/