C++ char数组大小验证

标签 c++ validation character-arrays

我有一个可以容纳 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/

相关文章:

c - 如何知道 C 中的 char 数组是否有空元素?

c++ - 如何知道编译器是否正在利用 pch.h.gch 文件?

c++ - 将结构 append 到链表

c++ - mingw 的 gcc-5.3 下具有混合位域和枚举声明的意外 sizeof 结构

angular - 如何迭代现有的 FormControl 验证器

c - 我正在尝试将字符串值分配给字符数组数组

c++ - BER解码错误

javascript - 为必须以 3 个字母作为前缀的数字创建模式,例如 (IKA111111)

java - validate.xml 之后的 validate() 方法

java - 我的 findCombos 方法不起作用,如何从 java 字符数组中删除字符