String 型別字串儲存和拼接

2021-08-08 20:04:10 字數 636 閱讀 9651

string str1="hello";     string str2="he"+"llo";   string str3="he"+new string("llo"); 

str1==str2 true

str1==str3 false

這個問題我試著回答一下,同時也是相互學習。string str1= "hello", stringstr2="he"+"llo";之所以str1==str2返回true是因為兩者都是在字串常量池中(由於初始化就會在此區域分布記憶體)而常量池中的有個與棧區類似的特性,就是當str2指向的常量在常量區已存在時,他不會建立新的記憶體空間來存此常量,而是指向已有常量的記憶體(應該是以此節約空間),此時str1與str2這兩個引用變數的值都是存"hello"的記憶體空間位址,但是stringstr3= "he"+a;string a="llo";時str1==str3返回的為false,是因為:str1指向的hello在編譯期一如既往的還是分配在常量區內,a指向的llo也在常量區,雖然str3也是初始化但是編譯器無法判斷a這貨到底是什麼個情況,進而不會將str3的等號右側宣告在常量區內,而是在通過構造時在堆區中的非常量池外的記憶體中宣告,至此str3與str1不止是分配記憶體的時期不同(乙個在編譯期,乙個在執行期)而且在記憶體空間的區域也不同,上面最高票答案只區分了時間沒區分空間。

String字串型別

strlen key 擷取key值的長度 incr key 每執行一次值加1 decr key 每執行一次值減1 incrby key 步長 每執行一次值加 步長 decrby key 步長 每執行一次值減 步長 getrange key start end 擷取key值從幾到幾的字串 第乙個字串預...

string型別字串排序

大名鼎鼎的sort函式出場了,它是在乙個比較難記的標頭檔案裡 include 記性差怪我嘍 對於string的公升序排序很簡單,直接呼叫sort函式即可 string a abc sort a.begin a.end 但是如果我想用降序排序呢?其實sort函式還有第三個引數,通過我們自己編寫乙個函式...

字串處理 string型別

string型別變數的賦值與連線 s是字串變數名 一 string s 字串 定義並初始化 二 string s 個數,字元 定義並初始化為若干相同字母 三 string s 字串 定義並初始化賦值 四 s 字元 字串變數名 連線字串 string型別的運算 成員函式指某個型別的特有函式,其呼叫方式...