c中string類支援的字串大小是多少?有上限嗎

時間 2021-12-22 15:44:13

1樓:

有上限. 可以用

size_t max_size ( ) const;

測定。例如:

string str ("test string");

cout << "max_size: " << str.max_size() << "\n";

數值很大,可以轉為 double 存放。

double x;

x = (double) (str.max_size() );

2樓:高中數學知識課堂

有上限。上限是string型別最大的存放量,就像int型別的變數,你賦值了一個非常大的資料就會超限。

不過正常情況下的需求都能滿足,可以用str.max_size()進行判定。

3樓:馮老師(必果學院

這個確實有上限,可以通過std::string::max_size()函式獲得。

該函式獲取的上限,其實是unsigned(-1)的值。所以依據平臺和編譯選項的不同,這個值會有變化。

在某些十六位嵌入式開發環境中,這個值是65535,也就是十六進位制的0xffff

大部分32位環境或者系統中,這個值是4,294,967,295,也就是十六進位制0xffffffff。這大約有4g位元組的樣子。

極少數伺服器裡面64位環境下,這個值是18,446,744,073,709,551,615,也就是十六進位制的0xffffffffffffffff。這大約是16e位元組的樣子(1e=1g個g,也就是2的30次方個g)。因為這種伺服器其實是一個類似於天河計算機一樣的網路叢集,記憶體容量非常大(以t計算,1t=1024g),硬碟容量近乎無限。

不過實際上使用的時候,這個大小是受限於計算機記憶體容量的。但對於記憶體可以承受的範圍內,可以簡單的認為string支援的字串大小沒有上限,或者上限非常大幾乎用不到。

4樓:匿名使用者

有上限,可以用 string類的成員函式max_size測定,這個數很大,一般你不需要這麼大的字串

c 改錯!編寫string類,實現字串的輸入,字串的輸出及長度的輸出(Code Blocks編譯)

改好了,看一下注釋 include using namespace std define n 10 class cstring 少了括號 void strinput void strlength cout void strcout int main 修改如下 include using namesp...

c語言刪除字串中的字元,C語言 刪除字串中指定的字元

受災 這個容易,就是把指定位置的字元去掉,也就是說後面的字元覆蓋比如刪除指定的字元在字串中第一個出現的位置void strdel char str,char ch if p 希望能解決您的問題。 微俊 include include int main s i 0 printf input a cha...

C中怎樣從指定字串中查詢並替換字串

stringtxt asdjsfk aaaaaaaaa 判斷這個字串中包含替換 就在斜槓前面加上字元 x 1 使用if語句 if txt.contains 2 使用條件運算子 txt txt.contains txt.replace x txt 擴充套件資料stringreplace 替換的目標,替...