字符串中允许的最大字符数是多少?如果是这样,字符数量的限制是多少?字符串中的最大字符数
回答
假设你正在谈论一个字符数组(而不是像std :: string之类的东西),那么我相信极限是32768,这取决于编译器。
UPDATE:
char str[32768];
宣布对数组时,此限制不适用:
正如已经pionted给我看,这个限制在声明堆栈,像这样在一个磁盘阵列仅适用堆是这样的:
char *str = new char[32769];
-1:为什么会有这么小的最大值? – 2010-02-22 13:09:01
我记得试图声明一个比这更大的字符数组(在VC++ 6中,所以这是几年前),我记得极限是数组中的32768个元素。 – Cameron 2010-02-22 13:12:56
如果您使用语法“char myArray [32768]”分配数组,则将它分配到堆栈中。你的字符串受限于你使用的平台的堆栈大小。但是,将这样的大型结构放在堆栈上是一个坏主意。如果你把“char * myArray = new char [32768]”,你会发现你的数组可能会像你想要的那样大,在你的平台上整数大小的范围内。 – Ant 2010-02-22 13:30:28
我们谈论“C字符串”或std::string
...前者完全取决于你的缓冲区的大小。后者应该仅受可用内存量的限制。
如何取决于缓冲区的大小是一个问题。当字符串很大时,std :: string不会将实际字符串存储在堆栈中。 – 2010-02-22 13:12:17
nobugz:我不太明白你的意思,你的第一句话是关于std :: string还是一个普通的缓冲区? – Skurmedel 2010-02-22 13:15:21
std :: string的存储将永远不受堆栈大小的限制。 – 2010-02-22 13:23:17
对于std::string str
,您可以获得最大尺寸为str.max_size()
。
要获取当前分配的大小,请使用str.capacity()
。
有趣......我想max_size就像它用于索引或其他东西的整数的最大值? – Skurmedel 2010-02-22 13:11:34
max_size返回size_t,它是无符号整数,但它可能会更少,具体取决于实现我猜。有一个关于length_error异常的问题http://stackoverflow.com/questions/1183700/what-is-the-meaning-of-this-c-error-stdlength-error – 2010-02-22 13:15:20
请注意,'max_size'是任何STL容器。同样在大多数计算机上,您不受限于整数限制,而是受限于一次可以分配的内存块的最大大小(如果我的内存服务于我,则每个进程的Windows不支持超过2GB)以及您的内存已经留在机器上了。 – 2010-02-22 14:59:56
我的理解是,C风格字符串中的最大字符数是size_t
类型的容量。该标准定义了size_t
,以便能够处理给定平台上的最大尺寸。可能存在较小的限制,例如可用于存储文本的内存(可以是只读或可写)。
根据std::string
(C++字符串),极限值由std::string::size_type
类型可以容纳的最大值指定。这在平台和翻译人员中有所不同。同样,这个数量可能会被平台存储字符串的能力降低。
一些新手已经能够声明10 MB字符串来处理文件。
- 1. 包含数字的字符串数组中的最大数字
- 2. 字符串到数组,最大长度,字符中断
- 3. 最大与字符串
- 4. 最大匹配字符串
- 5. 在字符串中获得大多数字符的字符
- 6. 计算字符串中最大数字的数量
- 7. 最小/最大字符数
- 8. 用Python替换大字符串中字符的最佳方法?
- 9. 将字符串分解成JavaScript中的最大字符部分
- 10. 字符串数组最大仅在40
- 11. 分割字符串与最大字符数限制
- 12. FCKeditor的最大字符数
- 13. 查找字符串数组中最长的字符串
- 14. 找到字符串数组中字符串的最快方法
- 15. 优化查找字符串数组中最宽的字符串?
- 16. 字符串数组中的字符串
- 17. Javascript,查找字符串中的最大数字序列
- 18. 将最低字符增加到字符串的最高字符
- 19. OracleParameterCollection.Add(字符串,类型,字符串,大小,字符串)
- 20. 将字符串(逐字符)插入较大的字符串
- 21. 在较大的字符串中分离字母字符串
- 22. 查找字符串的字符串w /最低频字符
- 23. 将字符串显示为最大数量的字符而不会分裂字
- 24. 爆炸大写字符的字符串?
- 25. 在Java中将字符串压缩到指定的最大字符数
- 26. 可以在C#格式字符串中定义最大数量的字符吗?
- 27. 字符串最右边的字符
- 28. Unicode字符串的最大尺寸
- 29. 字符串的最大长度[]
- 30. 大整数(字符串,16)
高依赖执行。如果您需要准确的答案,请指定您的操作系统,编译器和STL实现。 – 2010-02-22 13:13:05
听起来像功课吗? – 2010-02-22 15:58:58