C++中定义一个sting str;想问str最多可以储存多少个字符
答案:3 悬赏:50 手机版
解决时间 2021-02-15 15:19
- 提问者网友:我是女神我骄傲
- 2021-02-14 15:39
我用sizeof(str) 得到str占32个字节。我不知道,字节和字符的换算,那位高手可以告诉我,最好是C++的。
最佳答案
- 五星知识达人网友:舍身薄凉客
- 2021-02-14 15:51
字节和字符的换算和编码有关.
如果你的编码是Unicode, 则2个字节能表示一个字符, 比如A, 我.
如果编码是ASCII, 一个字节可以表示字母, 标点, 两个字节可以表示汉字.
一个字符串最长可以有多长呢? 首先要看你的计算机的表示能力, 如果是32位系统, 则最长可以表示: 2^32 = 4294967296个字符. 若是汉字的话, 则大约为2147483648, 21亿的样子, 所以可以认为是无穷大了.
若为64为系统, 则可以表示2^64 = 18446744073709551616.
很惊人吧!
你在申请内测的时候, 以最极限的方式来申请, 就可以获取最大的字符串, 比如
char *p = new char[4294967296].
此外在sizeof在使用的时候要需要注意下面的例子提出的情况.
void main()
{
char p1[255];
std::wcout << sizeof(p1) << std::endl; /// 数组的长度. 输出255字节
char* const p2 = new char[255];
std::wcout << sizeof(p2) << std::endl; /// 指针在内存的长度. 输出4字节
}
虽然本质上一样都是测量指针常量的长度,但sizeof的结果是不一样的.
如果你的编码是Unicode, 则2个字节能表示一个字符, 比如A, 我.
如果编码是ASCII, 一个字节可以表示字母, 标点, 两个字节可以表示汉字.
一个字符串最长可以有多长呢? 首先要看你的计算机的表示能力, 如果是32位系统, 则最长可以表示: 2^32 = 4294967296个字符. 若是汉字的话, 则大约为2147483648, 21亿的样子, 所以可以认为是无穷大了.
若为64为系统, 则可以表示2^64 = 18446744073709551616.
很惊人吧!
你在申请内测的时候, 以最极限的方式来申请, 就可以获取最大的字符串, 比如
char *p = new char[4294967296].
此外在sizeof在使用的时候要需要注意下面的例子提出的情况.
void main()
{
char p1[255];
std::wcout << sizeof(p1) << std::endl; /// 数组的长度. 输出255字节
char* const p2 = new char[255];
std::wcout << sizeof(p2) << std::endl; /// 指针在内存的长度. 输出4字节
}
虽然本质上一样都是测量指针常量的长度,但sizeof的结果是不一样的.
全部回答
- 1楼网友:第四晚心情
- 2021-02-14 17:57
8个
- 2楼网友:撞了怀
- 2021-02-14 16:54
你好!
基本上你可以认为string里面可以存无限长的字符串
这个跟sizeof(string)的值毫无关系
打字不易,采纳哦!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯