java char數(shù)組轉(zhuǎn)string 如何將char數(shù)組轉(zhuǎn)成string?
如何將char數(shù)組轉(zhuǎn)成string?那你為什么想要便宜?如何將整數(shù)轉(zhuǎn)換為字符串?你能把它變成一個(gè)無符號(hào)字符數(shù)組真是太好了。你在說什么?你把它保存為int了嗎?你想現(xiàn)在就打開嗎?如果你決定,我將使用字符
如何將char數(shù)組轉(zhuǎn)成string?
那你為什么想要便宜?
如何將整數(shù)轉(zhuǎn)換為字符串?
你能把它變成一個(gè)無符號(hào)字符數(shù)組真是太好了。
你在說什么?你把它保存為int了嗎?你想現(xiàn)在就打開嗎?
如果你決定,我將使用字符串。別阻止我
這不是沒有解決辦法。
char數(shù)組轉(zhuǎn)string?
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=調(diào)用在字符串類中為現(xiàn)有字符串對(duì)象定義的賦值運(yùn)算符:
string str
str=ch
前兩個(gè)類似,但與第三個(gè)完全不同。前兩種是使用構(gòu)造函數(shù)直接創(chuàng)建一個(gè)字符串對(duì)象,其內(nèi)容與C字符串一致;第三種是C,標(biāo)準(zhǔn)庫中編寫的string類重載賦值運(yùn)算符,這樣就可以用C字符串作為正確的操作數(shù)給string對(duì)象賦值,以便string對(duì)象的內(nèi)容與C字符串一致。
char數(shù)組,怎么轉(zhuǎn)換成字符串?
雖然從常量區(qū)域復(fù)制到堆棧是正確的,但復(fù)制兩個(gè)副本有點(diǎn)浪費(fèi)。畢竟,這個(gè)字符串只用于初始化局部變量。所以這取決于編譯器。
我測(cè)試過了。對(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ù)制。沒有那么多照片。