Cocos2d-x中的字符串
我们在C++中两种类型都可以使用,但是std::string是一个类,具体面向对象的优点,而const char*没有。我们是下面代码初始化std::string对象。
[html]view plaincopy
<spanstyle="font-weight:normal;"><spanstyle="font-size:14px;">std::stringname="tony";
std::stringname=std::string("tony");</span></span>
我们不需要使用指针,也不需要关心内存释放问题,在作用域超出之后std::string对象别释放。我们可以通过下面的语句把std::string转化为const char*类型。
[html]view plaincopy
<spanstyle="font-weight:normal;"><spanstyle="font-size:14px;">constchar*cstring=name.c_str();</span></span>
我们可以使用std::string指针类型,但是要配合使用new关键字开辟内存空间,然后不再使用的时候要通过delete释放内存。
[html]view plaincopy
<spanstyle="font-weight:normal;"><spanstyle="font-size:14px;">std::string*name=newstd::string("tony");
……
deletename;</span></span>
使用std::string指针对象时候,我们可以通过下面的代码转化为const char*类型。
[html]view plaincopy
<spanstyle="font-weight:normal;"><spanstyle="font-size:14px;">constchar*cstring=name->c_str();</span></span>
const char*和std::string的在Cocos2d-x中还有很多,我们会在后面的学习中给大家介绍。
使用cocos2d::__Stringcocos2d::__String是Cocos2d-x通过的一个字符串类,它的设计模拟了Objective-C的NSString类,这由于Cocos2d-x源自于Cocos2d-iphone,cocos2d::__String也是基于Unicode双字节编码。
cocos2d::__String的类图如下图所示,
创建它的主要的静态create函数如下:
<span><span>static__String*create(conststd::string&str)static__String*createWithFormat(constchar*format,...)</span></span>
使用create函数的实例代码如下:
<span><span>__String*name=__String::create("Hi,Tony");intnum=123;__String*ns=__String::createWithFormat("%d",num);</span></span>
cocos2d::__String还提供了一些数据类型之间的转换函数。例如:cocos2d::__String转换为const char*类型,这种转换用的比较多的,示例代码如下:
<span><span>__String*name=__String::create("Hi,Tony");constchar*cstring=name->getCString();</span></span>
const char*转换为cocos2d::__String类型,示例代码如下:
<span><span>constchar*cstring="Hi,Tony";__String*ns=__String::createWithFormat("%s",cstring);</span></span>
std::string转换为cocos2d::__String类型,示例代码如下:
<span><span>std::stringstring="Hi,Tony";__String*ns=__String::createWithFormat("%s",string.c_str());</span></span>
cocos2d::__String转换为int类型,示例代码如下:
<span><span>intnum=123;__String*ns=__String::createWithFormat("%d",num);intnum2=ns->intValue();</span></span>
还有很多函数我们会在以后的学习再给大家介绍。
更多内容请关注Cocos2d-x系列图书《Cocos2d-x实战(卷Ⅰ):C++开发》
本书交流讨论网站:http://www.cocoagame.net
欢迎加入cocos2d-x技术讨论群:257760386、327403678
更多精彩内容请关注史上最牛的cocos2d-x课程
《cocos2d-x手机游戏开发实战》直播课程第一期
报名Cocos2d-x直播课程还送关东升老师iOS终身会员。
课程链接:http://edu.51cto.com/pack/view/id-13.html
会员链接:http://edu.51cto.com/member/id-3.html
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。