繁体   English   中英

如何在C ++中的2d char数组中输入不同长度的字符串?

[英]How can I enter strings of different length in a 2d char array in C++?

我需要输入4个字符串,因此指定了需要输入的字符串数,但是每个字符串的长度不同。 由于我必须执行特定于字符的操作,因此如果我没有记错,它必须是2d char数组。 我如何用C ++编写代码。

参考:问题在于

输入:

4          // number of test cases
your 
progress 
is 
noticeable

如何在C ++中输入? 请帮助清除此背后的概念。

C ++标准库提供了std::string类,您应该选择该类,而不是char*char[]和那种C类不安全的东西。

然后,您可以根据需要阅读的内容 ,使用std::istream::operator>>std::getline或其他想要使用的内容,从std::cin输入流中读取这些字符串(以您的情况std::istream::operator>>

现在,为了将这些字符串存储在合适的数据结构中,看起来有点像数组。 C ++标准库为此提供了各种容器,仅取决于您要如何存储/访问字符串。 示例为std::vector (可动态修改的数组), std::arraystd::array更安全替代方法), std::deque (双端队列), std::forward_list (单链接列表)和std::list (双链接列表)。 这些数据结构提供了适当的操作来附加项目,删除项目,插入项目等,具体取决于特定容器的效率以及是否完全实现。
对于通用任务,我建议使用std::vector

如果确实需要,可以使用malloc()初始化字符数组,然后将realloc()的sizeof(char)乘以x的字符数。 您甚至可以添加一个标记来分隔要输入的各行。

只要确保您不要忘记在代码末尾对数组进行free()即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM