No viable conversion from 'const char' to 'std::string'

最近在学习Cocos2dx 对C++ 不是很熟悉,碰到了这个错误。

遍历字符串的时候报错了。

1
2
3
4
5
6
7
8
__String str = __String::create("232");
//现在我要获取第二位那个3
//于是我就这样做
const char *c = str->getCString();

std::string s = c[3];//这里编译报错了。然后我google 了一下午,char to String 没有什么结果

CCLOG("%s",s.c_str());

解决方法

后面看到了 cocos2dx 它自己定义了个字符串类 看到了这个方法在CCString.h 里面

1
static __String* createWithFormat(const char* format, ...) CC_FORMAT_PRINTF(1, 2);

char转为__String

这里就想到把这个中转下把

先专为 __String 然后专为 std::string

1
2
3
4
5
6
7
8
__String str = __String::create("232");

const char *c = str->getCString();//这里转一下

__String *m = __String::create("%s",c[2]);
std::string s = m->_string;//拿到 std::string

CCLOG("%s",s.c_str());

由于对C++ 不熟悉 有更好方法的同学欢迎评论.

文章作者: zhangman523
文章链接: http://blog.zhangman523.cn/2018/09/30/cocos2dx-c++-char-tostring-error/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zhangman523
支付宝打赏
微信打赏