我需要输入4个字符串,因此指定了需要输入的字符串数,但每个字符串的长度不同。因为我必须执行特定于字符的操作,所以它必须是2d char数组,如果我没有错的话。我怎样才能用c ++编写代码。
参考:问题在于spoj
输入:
4 // number of test cases
your
progress
is
noticeable
如何在C ++中输入?请帮助清除这背后的概念。
答案 0 :(得分:3)
C ++标准库提供了类std::string
,您应该选择该类,而不是char*
,char[]
和C-ish,不安全的东西。
然后,您可以使用std::cin
或std::istream::operator>>
或您想要使用的任何内容std::getline
从depending on what you want to read输入流中读取这些字符串(在您的情况下)。< / p>
现在,要将这些字符串存储在合适的数据结构中,数组似乎是合适的。 C ++标准库为此提供了各种容器,完全取决于您希望如何存储/访问字符串。示例是std::vector
(动态可修改的数组),std::array
(更安全的数组替代),std::deque
(双端队列),std::forward_list
(单链表),和std::list
(双重链表)。这些数据结构提供了附加项目,删除项目,插入项目等的适当操作,具体取决于特定容器的效率以及它们是否实施。
对于通用任务,我建议std::vector
。
答案 1 :(得分:0)
如果你真的想,你可以使用malloc()初始化一个字符数组,然后realloc()sizeof(char)乘以x个字符。您甚至可以添加一个标记来分隔您想要输入的各行。
请确保您不要忘记在代码末尾释放()数组。