當前位置:首頁 » 編程軟體 » 不編譯長字元串會怎麼樣

不編譯長字元串會怎麼樣

發布時間: 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'。

熱點內容
命令行訪問ftp 發布:2025-02-09 14:10:53 瀏覽:61
加密文件模板 發布:2025-02-09 14:10:13 瀏覽:223
翁虹ftp 發布:2025-02-09 14:02:54 瀏覽:131
java加密對稱 發布:2025-02-09 13:55:49 瀏覽:412
坤詡錢包為什麼沒有安卓版 發布:2025-02-09 13:50:49 瀏覽:299
存儲過程性能優化 發布:2025-02-09 13:42:59 瀏覽:729
源碼失竊 發布:2025-02-09 13:38:34 瀏覽:527
自動瀏覽器腳本 發布:2025-02-09 13:37:00 瀏覽:141
易語言問道源碼 發布:2025-02-09 12:59:03 瀏覽:664
ip和伺服器有關嗎 發布:2025-02-09 12:51:26 瀏覽:952