字符串中的最大字符数

时间:2010-02-22 13:04:23

标签: c++

字符串中是否允许使用最大字符数?如果是这样,字符数限制是多少?

4 个答案:

答案 0 :(得分:6)

对于std::string str,您可以获得str.max_size()的最大尺寸。

要获取当前分配的尺寸,请使用str.capacity()

答案 1 :(得分:3)

我们在说“C string”还是std::string ...前者完全取决于缓冲区的大小。后者应仅受可用内存量的限制。

答案 2 :(得分:1)

我的理解是,C风格字符串中的最大字符数是size_t类型的容量。 size_t由标准定义,以便能够处理给定平台上的最大大小。可能存在较少的约束,例如可用于存储文本的存储器(作为只读或可写)。

std::string(C ++字符串)而言,限制由std::string::size_type类型可容纳的最大值指定。这在平台和翻译中有所不同。同样,这个数量可能会被平台存储字符串的能力降低。

一些新手已经能够声明10 MB字符串来处理文件。

答案 3 :(得分:-2)

假设你在谈论一个字符数组(而不是std :: string之类的东西),那么我认为限制是32768,具体取决于编译器。

<强>更新
正如我所说,这个限制只适用于在堆栈上声明一个数组,如下所示:
char str[32768];

在堆上声明数组时,此限制不适用:
char *str = new char[32769];