当前位置:首页 » 编程软件 » 不编译长字符串会怎么样

不编译长字符串会怎么样

发布时间: 2022-08-02 17:09:37

㈠ Delphi 字符串太长怎么办

不会啊,string字段长度不会存不下这些啊
类型 最大长度 占用内存
ShortString 255 2-256 向后兼容
AnsiString 大约2^31 4字节-2G 8位(ANSI)字符
WideString 大约2^30 4字节-2G 多用户服务和多语言程序

如果只简单地用 String 定义字符串,那么该字符串可能是短字符串也可能是 ANSI 长字符串,这取决于 $H 编译指令的值,$H+(缺省)代表长字符串(ANSIString 类型)。长字符串是 Delphi 库中控件使用的字符串。
你看看是不是编译指令问题

java常量字符串过长怎么解决

String内部是以char数组的形式存储,数组的长度是int类型,那么String允许的最大长度就是Integer.MAX_VALUE = 2^31 - 1 = 2147483647。又由于java中的字符是以16位存储的,因此大概需要4GB的内存才能存储最大长度的字符串。

不过这仅仅是对字符串变量而言,如果是字符串常量,如“abc”、”1234”之类写在代码中的字符串str,那么允许的最大长度取决于字符串在常量池中的存储大小,也就是字符串在class格式文件中的存储格式:

CONSTANT_Utf8_info {

u1 tag;

u2 length;

u1 bytes[length];

}

u2是无符号的16位整数,因此理论上允许的string str的最大长度是2^16-1=65535。然而实际测试表明,允许的最大长度仅为65534,超过就编译错误。

㈢ C++如何输入不确定长度字符串数组,以下代码中a只有一个存储空间,为什么没有编译错误而且输出完全正确。

c/c++语言的设计初衷之一,就是尽量相信程序员,而不是给程序员太多的限制

所以哪怕就算是你的操作看上去有了明显的错误(例如数组越界),也会编译通过

所以说cin只看到a是char*类型,但是cin不负责检查到底a是指向多少位char

不确定长度也可以用标准库<string>头文件下面的string类型,c++建议用这个类型代替c风格字符串char*

㈣ string字符串长度限制

Java中的String有没有长度限制?
这个问题要分两个阶段看,分别是编译期和运行期。(ujiuye)不同的时期限制不一样:
1、编译期
String s = "";中,最多可以有65534个字符。如果超过这个个数。就会在编译期报错。

2、运行期
String长度的限制是编译期的限制,也就是使用String s= "";这种字面值方式定义的时候才会有的限制。那么。String在运行期有没有限制呢,答案是有的,就是我们前文提到的那个Integer.MAX_VALUE ,这个值约等于4G,在运行期,如果String的长度超过这个范围,就可能会抛出异常。(在jdk 1.9之前)String长度的限制是编译期的限制,也就是使用String s= "";这种字面值方式定义的时候才会有的限制。
字符串不能超过2G个字符

㈤ 什么是“字符型常量太长”c语言

字符只有一个字母在C语言中用 'a'单引号包含。
字符串可有很多个字符,用双引号包含。"abcdefgh"

如对字串比较可用库函数strcmp(char *s1,char *s2),而不能直接用==

而字符的比较可以

㈥ c语言 编辑距离算法 程序运行没问题 就是字符串长了会溢出 求修改

我用递归实现动态规划。
int fun (char*a,char*b)
{
if(strcmp(a,b)==0)return 0;
else
return min(fun(a+1,b),fun(a,b+1),fun(a+1,b+1));
}

因为是递归,可能浪费一些时间。不过可以参考动态规划中的“备忘录”方法,就是用数组记录已经算好的值。

思路和你类似。你试试看吧

㈦ 出现字符串变量对字串来说不够长请检查字符串定义是什么原因

那是因为你输入的字符个数超过了你首先定义的数组的大小,就好像你自己做了一个盒子,里面最多只能装10个球【就好比是a[10]】,结果你装了10个球后还往里面装,导致多余的球没地方放,在C语言编译的时候要开发一块内存来存放你输入的东西,而你没开发就放东西,所以编译器会报错;
例如:char a[10];
char占1个单元的内存空间,a[10]这个数组的定义就相当于开发出来了10个字节的内存来,这10个字节的内存只能存10个char型的数据,多余的就没地方存储,就导致了编译器报错!!!!

㈧ c语言中关于字符串长度的问题

不,若不在[]填数字,就必须在初始化这个str,在等号右边写具体数据,有几个数据,编译器就自动在[]中填几了。所以char str[]{0}这样写是错误的,要写成char str[]={'a','b','c'};这样的形式,编译器就会认为[]中是3了。另,char型数组还可以char str[]="1234567";这样来定义,但这时[]中并不是7而是8,原来编译器把str作为字符串对待了,要在7后自动加一个结束符'\0'。

热点内容
上古卷轴解压 发布:2025-03-15 00:54:25 浏览:381
uniqlinux 发布:2025-03-15 00:48:37 浏览:465
易燃压缩瓶 发布:2025-03-15 00:42:55 浏览:449
网页上传图片不显示 发布:2025-03-15 00:23:56 浏览:362
存储芯片的片选 发布:2025-03-15 00:14:26 浏览:714
javastring参数 发布:2025-03-15 00:04:58 浏览:864
chrome脚本推荐 发布:2025-03-15 00:03:29 浏览:528
itunes如何切换账号密码 发布:2025-03-14 23:50:47 浏览:206
压缩包上级目录 发布:2025-03-14 23:42:09 浏览:100
华为解压文件夹 发布:2025-03-14 23:41:21 浏览:925