c語言中如何借用指針輸出字符串 c怎么把char轉換為string就是字符?
c怎么把char轉換為string就是字符?1.如果要將字符串轉換成char*,可以使用string提供的函數(shù)c_str()或者函數(shù)data()。data返回不帶終止符#390#39的字符串內容,c_
c怎么把char轉換為string就是字符?
1.如果要將字符串轉換成char*,可以使用string提供的函數(shù)c_str()或者函數(shù)data()。data返回不帶終止符#390#39的字符串內容,c_str()返回以 0 。
char *c_str()c_str()函數(shù)返回一個指向常規(guī)C字符串的指針,其內容與這個字符串string相同。這是為了和C語言兼容,C語言沒有字符串類型。所以字符串對象必須通過字符串類對象的成員函數(shù)c_str()轉換成C中的字符串樣式。注意:c_str()方法返回的指針必須使用strcpy()函數(shù)進行操作,比如最好不要這樣做:: char * cs strings # 341234 # 34。
c s.c _ str()
//C最后指向的內容是垃圾,因為S對象被析構,其內容被處理。
char c[20]string s # 341234 # 34 strcpy(c,s.c _ str())以免出錯。c_str()返回一個臨時指針,不能作。再比如,c_str()以char*的形式返回一個包含string的字符串。如果一個函數(shù)需要char*參數(shù),可以用C _。#34
printf(#34%s#34,s.c_str())
//Output #34H
為什么說字符串是指針?
C語言中有一個概念叫指針。有時候一個指針還不夠,還需要一個雙指針。事實上,指針就是一個地址。
當程序運行時,變量存儲在內存中。如何訪問這些數(shù)據(jù)需要內存地址。內存地址是一個十六進制數(shù),比如0x403024,可以代表一個變量,也可以訪問一個變量。
但是如果變量很長,那么指針就出現(xiàn)了,它可以給變量一個別名,就是一個字符串。字符串的變量名是指向字符第一個字符的指針。
如何用C 輸出字符串?
C中的Cout太聰明了。為了省去我們循環(huán)輸出字符的麻煩,coutltltpltltendl被翻譯成輸出p指向的字符串值,這時候如果要輸出p的指針值,只能轉換成void*再輸出。由于空類型,cout可以 t輸出,所以只能輸出指針。
另外,coutltltamppltltendl并不可取,它實際上相當于printf(#34%p/n#34,ampp).該命令如下所示:
void main(){ char * p2 # 34 ABCD # 34 coultlt * p 2 ltltendlcoutltp 2 ltltendlprintf(# 34% p/n # 34,ampp 2)coultampp 2 ltltendlvoid * PP 2 cutttltpltendl }輸出結果如下:0046F020是p的值,0013FF7C實際上是Ampp。aabcd 0013 ff 7c 0013 ff 046 f 020 pressanykeyto繼續(xù)。