当前位置:  开发笔记 > 编程语言 > 正文

将basic_string <unsigned char>转换为basic_string <char>,反之亦然

如何解决《将basic_string<unsignedchar>转换为basic_string<char>,反之亦然》经验,为你挑选了1个好方法。

从以下

我可以将unsigned char转换为char,反之亦然吗?

似乎将a转换basic_string为a basic_string(即std::string)是有效的操作.但我无法弄清楚该怎么做.

例如,哪些功能可以执行以下转换,填写这些假设stouutos功能的功能?

typedef basic_string u_string;
int main() {
    string s = "dog";
    u_string u = stou(s);
    string t = utos(u);
}

我试图使用reinterpret_cast,static_cast和其他一些人,但我对其预期功能的了解是有限的.



1> Peter..:

假设您希望将原始文件中的每个字符复制并转换,解决方案很简单

 u_string u(s.begin(), s.end());
 std:string t(u.begin(), u.end());

u任何内容的形成都是直截了当的s,因为从转换signed charunsigned char简单地使用模运算.无论char是实际signed还是unsigned.

t如果char实际上signed char并且任何单个字符u具有超出a signed char可以表示的范围的值,则将形成未定义的行为.这是因为a的溢出signed char.对于您的特定示例,通常不会发生未定义的行为.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有