本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
CCString 很强大,各种数据类型的转换(把字符串转化为 double、float、integer......)。字符串的分割和比较
///\cocos2d-x-3.0alpha0\cocos2dx\cocoa //CCString 很强大,各种数据类型的转换(把字符串转化为 double、float、integer......)。字符串的分割和比较 #ifndef __CCSTRING_H__ #define __CCSTRING_H__ #if (CC_TARGET_PLATFORM == CC_PLATFORM_BLACKBERRY) #include <string.h> #endif #include <stdarg.h> #include <string> #include <functional> #include "CCObject.h" NS_CC_BEGIN /** * @addtogroup data_structures * @{ */ class CC_DLL String : public Object, public Clonable { public: /** * @js NA * @lua NA */ String(); /** * @js NA * @lua NA */ String(const char* str); /** * @js NA * @lua NA */ String(const std::string& str); /** * @js NA * @lua NA */ String(const String& str); /** * @js NA * @lua NA */ virtual ~String(); /* 重载(override)赋值运算符 * @js NA * @lua NA */ String& operator= (const String& other); /** 使用 format 初始化字符串, 他类似于 C 函数的 'sprintf' * @js NA * @lua NA */ bool initWithFormat(const char* format, ...) CC_FORMAT_PRINTF(2, 3); /** 转换为int值 * @js NA */ int intValue() const; /**转换为 unsigned 值 * @js NA */ unsigned int uintValue() const; /** 转换为 float 值 * @js NA */ float floatValue() const; /** 转换为 double 值 * @js NA */ double doubleValue() const; /** 转换为 bool 值 * @js NA */ bool boolValue() const; /** get the C string * @js NA */ const char* getCString() const; /** get string 的长度 * @js NA */ unsigned int length() const; /** C字符串比较 * @js NA */ int compare(const char *) const; /** 当前值的末尾追加额外的字符 * @js NA * @lua NA */ void append(const std::string& str); /** 当前值的末尾追加(w/ format)额外的字符 * @js NA * @lua NA */ void appendWithFormat(const char* format, ...); /** 将字符串分割 * @js NA * @lua NA */ Array* componentsSeparatedByString(const char *delimiter); /* override functions * @js NA */ virtual bool isEqual(const Object* pObject); /** 使用 std string 创建一个字符串, 你也可以使用一个 c string 指针,因为 std::string 的默认构造函数可以接受一个 c string 指针. * @return 一个字符串指针,这是一个自动释放的对象指针, * 这意味着你不需要 release 操作除非你 retain 他了. * @js NA */ static String* create(const std::string& str); /** 使用 format 创建字符串, 他类似于 C 函数的 'sprintf' , 默认的缓冲大小是 (1024*100) bytes, * 如果你想改变它,你应该在 String.cpp 文件里面修改 kMaxStringLen 宏. * @return 一个字符串指针,这是一个自动释放的对象指针, * 这意味着你不需要 release 操作除非你 retain 他了. * @js NA */ static String* createWithFormat(const char* format, ...) CC_FORMAT_PRINTF(1, 2); /** create 一个 binary data 创建字符串 * @return 一个字符串指针,这是一个自动释放的对象指针, * 这意味着你不需要 release 操作除非你 retain 他了. * @js NA */ static String* createWithData(const unsigned char* pData, unsigned long nLen); /** create 一个文件创建字符串 * @return 一个字符串指针,这是一个自动释放的对象指针, * 这意味着你不需要 release 操作除非你 retain 他了. * @js NA */ static String* createWithContentsOfFile(const char* filename); /** * @js NA * @lua NA */ virtual void acceptVisitor(DataVisitor &visitor); /** * @js NA * @lua NA */ virtual String* clone() const; private: /** 仅供内部使用 */ bool initWithFormatAndValist(const char* format, va_list ap); public: std::string _string; }; struct StringCompare : public std::binary_function<String *, String *, bool> { public: bool operator() (String * a, String * b) const { return strcmp(a->getCString(), b->getCString()) < 0; } }; #define StringMake(str) String::create(str) #define ccs StringMake // end of data_structure group /// @} NS_CC_END #endif //__CCSTRING_H__