Cocos2d-x中的字符串

发布时间:2020-07-31 20:00:44 作者:tony关东升
来源:网络 阅读:467

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对象。

        

[html] view plaincopyCocos2d-x中的字符串Cocos2d-x中的字符串

  1. <span style="font-weight: normal;"><span style="font-size:14px;"> std::string name = "tony";  

  2. std::string name = std::string("tony");</span></span>  


我们不需要使用指针,也不需要关心内存释放问题,在作用域超出之后std::string对象别释放。我们可以通过下面的语句把std::string转化为const char*类型。

[html] view plaincopyCocos2d-x中的字符串Cocos2d-x中的字符串

  1. <span style="font-weight: normal;"><span style="font-size:14px;">const char* cstring = name.c_str();</span></span>  



我们可以使用std::string指针类型,但是要配合使用new关键字开辟内存空间,然后不再使用的时候要通过delete释放内存。

[html] view plaincopyCocos2d-x中的字符串Cocos2d-x中的字符串

  1. <span style="font-weight: normal;"><span style="font-size:14px;">         std::string* name =newstd::string("tony");  

  2.          … …  

  3.          delete name;</span></span>  


使用std::string指针对象时候,我们可以通过下面的代码转化为const char*类型。

   

[html] view plaincopyCocos2d-x中的字符串Cocos2d-x中的字符串

  1. <span style="font-weight: normal;"><span style="font-size:14px;">      const char* cstring = name->c_str();</span></span>  



const char* std::string的在Cocos2d-x中还有很多,我们会在后面的学习中给大家介绍。

使用cocos2d::__String

cocos2d::__StringCocos2d-x通过的一个字符串类,它的设计模拟了Objective-CNSString类,这由于Cocos2d-x源自于Cocos2d-iphone,cocos2d::__String也是基于Unicode双字节编码。

cocos2d::__String的类图如下图所示,

Cocos2d-x中的字符串

创建它的主要的静态create函数如下:

<span ><span >static__String * create (const std::string &str)  
static__String * createWithFormat (const char *format,...)</span></span>


使用create函数的实例代码如下:

  1. <span ><span >__String* name=  __String::create("Hi,Tony");  
    int num=123;  
    __String* ns = __String::createWithFormat("%d",num);  
     </span></span>


cocos2d::__String还提供了一些数据类型之间的转换函数。例如:cocos2d::__String转换为const char*类型,这种转换用的比较多的,示例代码如下:


  1. <span ><span >__String* name=  __String::create("Hi,Tony");  
    const char *cstring=name->getCString();</span></span>


const char*转换为cocos2d::__String类型,示例代码如下:

<span ><span >const char* cstring = "Hi,Tony";  
__String*ns=__String::createWithFormat("%s",cstring);</span></span>


std::string转换为cocos2d::__String类型,示例代码如下:

<span ><span >std::string string = "Hi,Tony";     
__String*ns=__String::createWithFormat("%s",string.c_str());</span></span>


cocos2d::__String转换为int类型,示例代码如下:

<span ><span >int num = 123;  
__String* ns =__String::createWithFormat("%d",num);  
int num2 = 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




推荐阅读:
  1. cocos2d-x的安装
  2. 我所理解的Cocos2d-x

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

手机游戏 cocos2d-x 移动游戏

上一篇:iOS中如何创建一个滑出式导航面板(1)

下一篇:Android 6.0 特性

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》