java char數(shù)組轉(zhuǎn)string 新人求助,QString如何轉(zhuǎn)換為char數(shù)組?
新人求助,QString如何轉(zhuǎn)換為char數(shù)組?你好,我是小天。我很高興為你回答。首先,qstring轉(zhuǎn)換為qbytearray,然后qbytearray轉(zhuǎn)換為char*view plain//inc
新人求助,QString如何轉(zhuǎn)換為char數(shù)組?
你好,我是小天。我很高興為你回答。
首先,qstring轉(zhuǎn)換為qbytearray,然后qbytearray轉(zhuǎn)換為char*view plain//include“teclasss。H “#include<qtgui/QApplication>#include<qtdebug>#include<qstring> int main(int argc,char*argv){QApplication a(argc,argv)qstring STR=“hello”//qstring to char*qbytearray=托拉廷街1號()字符*毫米=ba.數(shù)據(jù)()qdebug()<<mm<<endl//調(diào)試時,控制臺中的輸出返回a.exec()}]。更專業(yè)的科普知識,請關(guān)注我。如果你喜歡我的回答,也請給我表揚(yáng)或轉(zhuǎn)發(fā),你的鼓勵是支持我寫下來的動力,謝謝。
c char數(shù)組如何轉(zhuǎn)化為String對象?
有很多方法:
假設(shè)C字符串被定義為char ch[]=“Hello world!"
1. 將C字符串傳遞給構(gòu)造函數(shù)以創(chuàng)建字符串對象:
string str(CH)
2。使用復(fù)制構(gòu)造函數(shù)創(chuàng)建字符串對象:
string STR=ch
3。在字符串類中為現(xiàn)有字符串對象定義的調(diào)用賦值運(yùn)算符:
string STR
STR=ch
前兩個類似,但與第三個不同。前兩種是直接用構(gòu)造函數(shù)創(chuàng)建一個內(nèi)容與C字符串一致的string對象;第三種是C標(biāo)準(zhǔn)庫編寫的string類重載賦值運(yùn)算符,這樣就可以用C字符串作為右運(yùn)算符給string對象賦值,以便string對象的內(nèi)容與C字符串一致。
char數(shù)組,怎么轉(zhuǎn)換成字符串?
雖然從常量區(qū)域復(fù)制到堆棧是正確的,但復(fù)制兩個副本有點浪費。畢竟,這個字符串只用于初始化局部變量。所以這取決于編譯器。
我測試過了。對于程序:
如果在64位WSL下使用GCC編譯,則字符串本身在指令中是硬編碼的。圖:
請注意,從字節(jié)0x17和字節(jié)0x25開始的兩條指令的立即數(shù)實際上是“thing is a string”的ASCII代碼
對于Microsoft Cl,
此代碼實際上將字符串存儲在常量區(qū)域中,并在運(yùn)行時進(jìn)行復(fù)制:
此外,似乎clang也寫入常量區(qū)域中然后復(fù)制。沒有那么多照片。