阅读495 返回首页    go 阿里云 go 技术社区[云栖]


Cocos2d-x中的字符串

Cocos2d-x中能够使用的字符串constchar*std::stringcocos2d::__String等其中const char*C风格的字符串std::stringC++风格的字符串它封装了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::__StringCocos2d-x通过的一个字符串类它的设计模拟了Objective-CNSString类这由于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();

还有很多函数我们会在以后的学习再给大家介绍。

更多内容请关注最新Cocos图书《Cocos2d-x实战 C++卷》
本书交流讨论网站https://www.cocoagame.net
更多精彩视频课程请关注智捷课堂Cocos课程https://v.51work6.com
欢迎加入Cocos2d-x技术讨论群257760386


《Cocos2d-x实战 C++卷》现已上线各大商店均已开售

京东https://item.jd.com/11584534.html

亚马逊https://www.amazon.cn/Cocos2d-x%E5%AE%9E%E6%88%98-C-%E5%8D%B7-%E5%85%B3%E4%B8%9C%E5%8D%87/dp/B00PTYWTLU

当当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

欢迎关注智捷iOS课堂微信公共平台


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

  上一篇:go Java SimpleDateFormat 线程不安全问题及解决方法
  下一篇:go Java SimpleDateFormat 线程不安全问题及解决方法