CString與string、char*的區別和轉換 - 程式人生
文章推薦指數: 80 %
string是C++標準庫(STL)中的型別,它是定義的一個類,定義在
裡面包含了對字串的各種常用操作,它較char*的優勢是內容可以動態拓展, ...
程式人生>>CString與string、char*的區別和轉換
CString與string、char*的區別和轉換
阿新••發佈:2019-01-31
我們在C++的開發中經常會碰到string、char*以及CString,這三種都表示字串型別,有很多相似又不同的地方,常常讓人混淆。
下面詳細介紹這三者的區別、聯絡和轉換:各自的區別char*:char*是一個指向字元的指標,是一個內建型別。
可以指向一個字元,也可以表示字元陣列的首地址(首字元的地址)。
我們更多的時候是用的它的第二的功能,來表示一個字串,功能與字串陣列char ch[n]一樣,表示字串時,最後有一個 '\0'結束符作為字串的結束標誌。
【例1】#include
裡面包含了對字串的各種常用操作,它較char*的優勢是內容可以動態拓展,以及對字串操作的方便快捷,用+號進行字串的連線是最常用的操作。
【例2】#include
CString(typedef CStringT> CString)為Visual C++中最常用的字串類,繼承自CSimpleStringT類,主要應用在MFC和ATL程式設計中,所以使用CString時要包含afx.h檔案#include
【例3】#include
這是因為你的工程的字符集不是多位元組字符集,將你的工程屬性設定為多位元組字符集即可,方法是:右鍵點選你的工程,選擇Properties\ConfigurationsProperties\General,在右側的ProjectDefaults下的CharacterSet選擇UseMulti-ByteCharacterSet。
總結從靈活度來說,string最靈活易用,其次是CString,char*的拓展性和靈活性比較差。
一般來說在基於標準庫開發時用string,在在MFC和ATL程式設計時用CString。
CString、string之間的轉換還有其它的一些方向,但基本上都是通過char*作為橋樑,因為char*即可以方便地轉換成string,也可以方便地轉換成CString。
更多CString的用法也可參考以下連結,他們寫的更詳細,我就不再重複了。
http://www.cnblogs.com/Caiqinghua/archive/2009/02/16/1391190.htmlhttp://blog.csdn.net/lewutian/article/details/6787024歡迎加入"C/C++夢之隊"學習群:226157456
Android仿京東篩選
«上一篇
記錄:s:iterator的一些使用(status,begin和end)下一篇»
相關推薦
CString與string、char*的區別和轉換
我們在C++的開發中經常會碰到string、char*以及CString,這三種都表示字串型別,有很多相似又不同的地方,常常讓...
MFC中CString與string的區別以及相互轉換關係
區別:
CString類是微軟的visual c++提供的MFC裡面的一個類,所以只有支援MFC的工程才可以使用。
如在li...
jQuery物件與dom物件的聯絡、區別和轉換
1、關於頁面元素的引用
通過jquery的$()引用元素包括通過id、class、元素名以及元素的層級關係及dom或者xpa...
java.sql.date和java.util.date的區別和轉換
有時sim.textselronvalueofsql方法b-不同點:java.util.Date是在除了S...
VC中CStringintstringchar之間的轉換
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本...
SparkSQL(8):DataSet和DataFrame區別和轉換
1.概念:
(1)DataSet和RDD
大資料的框架許多都要把記憶體中的資料往磁盤裡寫,所以DataSet取代rdd...
NTFS和FAT32的區別和轉換
目前最主流的兩個磁碟檔案系統就是NTFS和FAT32,兩種系統各有優劣,這篇文章就向大家介紹一下NTFS和FAT32的區別以及利用Tuxera...
檔案描述符fd和檔案指標File*fp的區別和轉換
在linux系統中把裝置和普通檔案也都看做是檔案,要對檔案進行操作就必須先開啟檔案,開啟檔案後會得到一個檔...
Json和JsonNode區別和轉換
Json
Stringjson="{\"username\":\"zhangsan\",\"性別\":\"男\",\...
網路層(含有內外網ip的區別和轉換)
學習和了解ip層之前首先要分清什麼是內網ip什麼是外網ip: 內網ip實際上是區域網...
搜尋
基礎教學
Mysql入門
Sql入門
Android入門
Docker入門
Go語言入門
Ruby程式入門
Python入門
Python進階
Django入門
Python爬蟲入門
最近訪問
CString與string、char*的區別和轉換
jquery模擬a標籤的click事件,無法實現跳轉
vue+++element++tp5+個人部落格後臺管理小記
checkbox在vue中的用法小結
vim外掛taglist的安裝和使用
兩臺電腦最簡單的連線方法:直連
C#實戰023:解決新增xxx.dll的引用時報錯,請確保xxx是有效的程式集或者COM元件
JXL操作Excel內容自動換行
上傳到GooglePlay的Apk簽名被改變
HBase的幾種匯入資料的方式
延伸文章資訊
- 1C語言字元char與字串差異與詳解 - CHG
C語言字元char與字串差異與詳解. tags: C++ Concept2. 初學C語言的時候遇到字串總是感到莫名其妙與不知道該怎麼用,比如說為什麼字串不能直接接上,或 ...
- 2Char和String的區別 - 程序員學院
char是字元型別, string是字串型別,雖然一字之差,但其本質區別是很大的。 在c#中它屬於值型別(value type)。char型別的長度是固定的,在c++中它 ...
- 3(轉) char s[]字串和char *s字串有什麼差別? @ 大玩家闖天涯的 ...
AbstractC語言有兩種字串宣告方式char s[]和char *s,兩者有什麼差異呢?Introduction char s[] = "Hello World";char *
- 4(原創) char s[]字串和char *s字串有什麼差別? (C/C++) (C)
C語言有兩種字串宣告方式char s[]和char *s,兩者有什麼差異呢? ... 的s是一個pointer指向char,由於"Hello World"本身就是一個string literal...
- 5字元陣列與字串 - OpenHome.cc
字串就是一串文字,在C 談到字串的話,一個意義是指字元組成的陣列,最後加上一個空(null)字元 '\0' ,例如底下是個 "hello" 字串: char text[] = {'h', 'e'...