zoukankan      html  css  js  c++  java
  • 【转载】cocos2d-x类型转换(CCstring int string char UTF-8互转)以及字符串详解

    cocos2d-x中的字符串:

    <1>:使用 const char* 和 std::string

    const char* 是C风格的字符串  ,std::string 是C++风格的字符串,它封装了 const char *

    初始化 std::string 对象:

    std::string name = "tony";

    std:: string name = std::string("Micheal");

    std::string 指针类型:

    std::string namep = new std::string("Micheal");

    ... ....

    delete namep;

    把std::string 类型转换为 const char* 类型:

    const char* cstring = name.c_str();

    const char* cstring = namep->c_str();

    <2>:使用cocos2d::__string

    来源于Objective-c 的NSString

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

    _static __String * create(const std::string &str)

    _static__String* createWitnFormat(const char* format,......)

    数据类型之间的转换:

    cocos2d::__String 转为const char*类型  举例如下:

    __String * name = __String::Create("Hi Micheal');

    const char * cstring = name->getCstring();

    const char* 转换为 cocos2d::__String类型,举例如下:

    const char * cstring = "Hi Micheal";

    __String* ns = __String::createWithFormat("%s",cstring);

    std::string转换为cocos2d::__String()类型,举例如下:

    std::string string = "Hi Micheal";

    __String * ns = __String::CreateWithFormat("%s",string.c_str());

    cocos2d::__String 转换为int类型

    int num = 123;

    __String * ns = __StringCretaeWitjFormat("%d",num);

    int num2 = ns->intValue();


    在做数据转换时,最好包含以下头文件

    • #include <iostream>
    • #include <cmath>
    • #include <string> 
    • #include <sstream>
    • USING_NS_CC;
    • using namespace std;
    在cocos2d-x中,也有一个格式刷:__String(数据转换常常找她做中间人),那么我们要转换类型,可先将起始数据类型刷成__String然后再转成目的数据类型,这个方法比较方便且实用。
     
    复制代码
    //int 转 CCstring
    
    int num=5;
     CCString* ns=CCString::createWithFormat("%d",num);
     
     //CCstring 转 int
    int px = ns->intValue();//将CCString 转换为int的方法,转成float类型有 floatValue()
    //======================================
     
    //CCString 转    char
    const char *string= ns->getCString();
     
    //char 转    CCString
    CString.Format(”%s”,char *)//char 转cstring 
     CCString* ns=CCString::createWithFormat("%s",char *);
    //======================================
     
    //string 转  char
    const char *string=std::string("STRING").c_str();
    char 转 string
    string s(char *);
    //======================================
     
    //string  转 int
    std::string s("1234");
    int n = std::atoi(s.c_str());//函数原型int atoi(const char *);
     
    //int 转 string
    int a=3;
    
    CCString* ns=CCString::createWithFormat("%d",a);
    
    string s=ns->m_sString;
    
    //======================================
    
    //string 转 CCString
    std::string str = "123";
    
    CCString* ns=CCString::createWithFormat("%s",str.c_str());
    
    CCString 转 string
    
    std::string s= ns->m_sString;//ns是一个CCString*类型
    
    //======================================
    
    //char 转  int
    
     char *buf = "1122";
    
     int n = std::atoi(buf);
    
    //int 转 char
    
    int a=3;
    
    CCString* ns=CCString::createWithFormat("%d",a);
    
    const char* s=ns->getCString();
     
  • 相关阅读:
    Python中if __name__ == '__main__':的作用
    Java集合面试题及答案总结(2020版)
    Java多线程面试题及答案(2020版)
    poi: 如何获取cell的行号对应的字母
    gogs: 进入Docker实例并修改MySQL帐号
    多音源多声卡背景音乐播放系统,可在一台电脑上同时播放10种音乐
    弱电图纸中敷设方式符号表示大全
    HashMap集合详解----源码分析--之--高级篇
    正则表达式总结及主要事项
    使用接口进行form表单提交
  • 原文地址:https://www.cnblogs.com/dudu580231/p/5647572.html
Copyright © 2011-2022 走看看