495
技術社區[雲棲]
Cocos2d-x中的字符串
在Cocos2d-x中能夠使用的字符串constchar*、std::string和cocos2d::__String等其中const char*是C風格的字符串std::string是C++風格的字符串它封裝了const char*。cocos2d::__String才是Cocos2d-x引擎提供的字符串類這些字符串都可以互相轉換它們會在不同的場景下使用具體使用那個可以看具體的API。
使用const char*和std::string
我們在C++中兩種類型都可以使用但是std::string是一個類具體麵向對象的優點而const char*沒有。我們是下麵代碼初始化std::string對象。
std::string name = "tony";
std::string name = std::string("tony");
我們不需要使用指針也不需要關心內存釋放問題在作用域超出之後std::string對象別釋放。我們可以通過下麵的語句把std::string轉化為const char*類型。
const char* cstring = name.c_str();
我們可以使用std::string指針類型但是要配合使用new關鍵字開辟內存空間然後不再使用的時候要通過delete釋放內存。
std::string* name =newstd::string("tony");
… …
delete name;
使用std::string指針對象時候我們可以通過下麵的代碼轉化為const char*類型。
const char* cstring = name->c_str();
const char* 和std::string的在Cocos2d-x中還有很多我們會在後麵的學習中給大家介紹。
使用cocos2d::__String
cocos2d::__String是Cocos2d-x通過的一個字符串類它的設計模擬了Objective-C的NSString類這由於Cocos2d-x源自於Cocos2d-iphone,cocos2d::__String也是基於Unicode雙字節編碼。
cocos2d::__String的類圖如下圖所示
創建它的主要的靜態create函數如下
static__String * create (const std::string &str)
static__String * createWithFormat (const char *format,...)
使用create函數的實例代碼如下
__String* name= __String::create("Hi,Tony");
int num123;
__String* ns = __String::createWithFormat("%d",num);
cocos2d::__String還提供了一些數據類型之間的轉換函數。例如cocos2d::__String轉換為const char*類型這種轉換用的比較多的示例代碼如下
__String* name= __String::create("Hi,Tony");
const char *cstring=name->getCString();
const char*轉換為cocos2d::__String類型示例代碼如下
const char* cstring = "Hi,Tony";
__String*ns=__String::createWithFormat("%s",cstring);
std::string轉換為cocos2d::__String類型示例代碼如下
std::string string = "Hi,Tony";
__String*ns=__String::createWithFormat("%s",string.c_str());
cocos2d::__String轉換為int類型示例代碼如下
int num = 123;
__String* ns =__String::createWithFormat("%d",num);
int num2 = ns->intValue();
還有很多函數我們會在以後的學習再給大家介紹。
《Cocos2d-x實戰 C++卷》現已上線各大商店均已開售
京東https://item.jd.com/11584534.html
當當https://product.dangdang.com/23606265.html
互動出版網https://product.china-pub.com/3770734
《Cocos2d-x實戰 C++卷》源碼及樣章下載地址
源碼下載地址https://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1
樣章下載地址https://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1

最後更新:2017-04-03 12:56:35