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