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

C++ 如何在C+;中的2d字符数组中输入不同长度的字符串+;?,c++,arrays,string,multidimensional-array,variable-length,C++,Arrays,String,Multidimensional Array,Variable Length,我需要输入4个字符串,因此指定了需要输入的字符串数,但每个字符串的长度不同。因为我必须执行特定于字符的操作,所以如果我没有错的话,它必须是2d字符数组。如何在C++中编写代码?< /p> 参考:问题在spoj中 输入: 4 // number of test cases your progress is noticeable 如何在C++中输入?请帮助清除这个概念。 < P> C++标准库提供了类,你应该选择它,而不是 char */COD>, char [] /代码>

我需要输入4个字符串,因此指定了需要输入的字符串数,但每个字符串的长度不同。因为我必须执行特定于字符的操作,所以如果我没有错的话,它必须是2d字符数组。如何在C++中编写代码?< /p> 参考:问题在spoj中

输入:

4          // number of test cases
your 
progress 
is 
noticeable

<>如何在C++中输入?请帮助清除这个概念。

< P> C++标准库提供了类,你应该选择它,而不是<代码> char */COD>,<代码> char [] /代码>,以及C-SiH,不安全的东西。

然后使用或或任何您想要使用的,从输入流读入这些字符串(在您的例子中)

现在,要将这些字符串存储在一个合适的数据结构中,某种数组形式似乎是合适的。C++标准库提供了各种容器,这完全取决于您希望如何存储/访问字符串。例如(动态可修改数组),(数组的更安全替代品),(双端队列),(单链表)和(双链表)。这些数据结构提供适当的操作来追加、删除、插入项目等,具体取决于特定容器的效率以及是否实现了这些项目。

对于通用任务,我建议<>代码> STD::vector < /代码> .< /P> < P> C++标准库提供的类,您应该选择它,而不是<代码> char */COD>,<代码> char [] /代码>,以及C-SiH,不安全的东西。 然后使用或或任何您想要使用的,从输入流读入这些字符串(在您的例子中)

现在,要将这些字符串存储在一个合适的数据结构中,某种数组形式似乎是合适的。C++标准库提供了各种容器,这完全取决于您希望如何存储/访问字符串。例如(动态可修改数组),(数组的更安全替代品),(双端队列),(单链表)和(双链表)。这些数据结构提供适当的操作来追加、删除、插入项目等,具体取决于特定容器的效率以及是否实现了这些项目。

对于一般用途的任务,我建议
std::vector

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


只需确保不要忘记在代码末尾释放()数组。

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


<>请确保不要忘记在代码末尾的数组。在C++中,你将永远不会这样做。使用STD::String。C++的方式是:<代码> STD::数组< /COD>或<代码> STD::vector < /COD> <代码> STD::String 。否则,您将需要一个固定的、过大的缓冲区或使用不规则的数组。
std::string
中特定于字符的操作通常非常简单。使用
[]
操作符获取角色并进城。也就是说,有一个更好的方法来澄清,你可以不使用<代码> STD::String ,但是你会重新发明轮子——可能是错误的,但是这是一个很棒的学习经历。到目前为止你尝试了什么?在C++中,你永远不会那样做。使用STD::String。C++的方式是:<代码> STD::数组< /COD>或<代码> STD::vector < /COD> <代码> STD::String 。否则,您将需要一个固定的、过大的缓冲区或使用不规则的数组。
std::string
中特定于字符的操作通常非常简单。使用
[]
操作符获取角色并进城。也就是说,通常有更好的方法来澄清,您可以在没有
std::string
的情况下工作,但您将重新发明轮子--可能会出错,这是一个很棒的学习经历。你到底尝试了什么?它被标记为C++,所以新/Delphi比MalC/C++的C++更自然,所以新/Delphi比MalC/C++/ALE更自然。