cocos2d-x 字符串
1.Cocos2d-x中[NSString stringWithFormat:]替代方法
unsigned int n;
[NSString stringWithFormat:@"%u", n];
在Cocos2d-x中,可以利用下列方式
char* tempString = new char;
sprintf(tempString, "%u", n);
头文件
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
2:字符串的查找,替换
< 1 >
char str[64] = {0};
for(int i = 1; i <= 3; i++)
{
//输出到指定字符串
sprintf(str, "filed_%d.png", i);
CCLOG("--------str = %s", str);
// Cocos2d: --------str = filed_1.png
// Cocos2d: --------str = filed_2.png
// Cocos2d: --------str = filed_3.png
}
< 2 >
对于字符串的查找和替换,使用char*就过于繁琐了。而string类其实已经提供了这些基本的方法。比如我们在一个string中查找一个字符串并替换它:
string contentStr = string("http://www._3.com");
int index = contentStr.find("_3");
contentStr.replace(index, sizeof("_3") - 1, "baidu");
CCLOG("---------contentStr = %s", contentStr.c_str());
3. 字符串的使用(NSString)
(1)
const char * getString()
{
CCString *pRet = new CCString();
pRet->autorelease();
pRet->m_sString = XXXXX;
return pRet->m_sString.c_str();
}
(2)
std::string mapName;
CCLOG("[%s]",mapName.c_str());
4.字符串比较
if(strcmp(feedbackField->getString(), "") == 0)
5.字符串拼接
//显示我加 系统时间
askLabelNote = CCLabelTTF::labelWithString(format(const_cast<char*>("%s%s"),"我 ", currentTimeNow()), "Arial", 16);
askLabelNote->setAnchorPoint(ccp(0.0f, 0.5f));
askLabelNote->setColor(ccc3(0,128,128));
askLabelNote->setPosition(ccp(askSprite->getPositionX(), askSprite->getPositionY() - askSprite->getContentSize().height*scaleY*0.9f));
cell->addChild(askLabelNote);
6.获取时间
const char* FeedbackLayer::currentTimeNow()
{
struct cc_timeval now;
CCTime::gettimeofdayCocos2d(&now, NULL);
struct tm *tm;
tm = localtime(&now.tv_sec);
int year = tm->tm_year + 1900;
int month = tm->tm_mon + 1;
int day = tm->tm_mday;
int hour=tm->tm_hour;
int minute=tm->tm_min;
std::stringstream currentTime;
currentTime<<year<<"-"<<month<<"-"<<day<<" "<<hour<<":"<<minute;
return currentTime.str().c_str();
}
7.格式化字符串
char* format(const char* fmt, ... )
{
static char buffer[100];
va_list argPtr;
va_start( argPtr, fmt );
vsprintf( buffer, fmt, argPtr );
va_end( argPtr );
return buffer;
}
7.字符串转整型
#include <stdlib.h>
//int a = atoi(format(const_cast<char*>("%s"),"555"));
int a = atoi(CCString::stringWithFormat("%s", "555")->getCString());
CCLOG("---------a = %d", a + 1);
8.输入输出流
long m_lCrystal = GetCrystal();
stringstream ss;
ss << m_lCrystal;
ss >> strTitle;
lTitle = CCLabelTTF::create(UTEXT2(strTitle.c_str()), "汉仪综艺体简", 30);

浙公网安备 33010602011771号