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();
     
  • 相关阅读:
    第一次工作 第一星期问题总结。
    IOS 中使用token机制来验证用户的安全性
    地址栏连接参数修改
    JavaScript反调试技巧
    简谈前端存储
    跨域的原因,场景,方法
    vue学习笔记(一)关于事件冒泡和键盘事件 以及与Angular的区别
    vue入门 vue与react和Angular的关系和区别
    详细图解作用域链与闭包
    jQuery的ajax详解
  • 原文地址:https://www.cnblogs.com/dudu580231/p/5647572.html
Copyright © 2011-2022 走看看