gpt4 book ai didi

c++ - 字符串类型的转换

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:24:40 24 4
gpt4 key购买 nike

C++中有很多字符串类型:WideString、UnicodeString、String、wstring、string、AnsiString、Variant

在我的代码中有很多转换,比如

WideString s1 = UnicodeString ( wstring(s2.str().c_str()).c_str()).c_str();

一言以蔽之:困惑!

有没有一种简单的方法可以用一个助手类来处理所有的字符串转换,而无需再考虑如何将一种字符串类型转换为另一种字符串类型,例如:

s1 = sc(s2);    // sc = string-converter

sc(s1,s2);      // s1 = convert to, s2 = convert from

最佳答案

经过一些实验我决定使用重载函数!

如果我使用模板,我的代码如下所示:

string  s = convert<wstring,string> (wstring(L"hello"));

问题是我必须编写要转换的类型。我为什么要那么做?编译器知道类型!

如果我使用重载函数

std::string convert(const std::wstring &from)
{
return std::string(from.begin(), from.end());
}

std::wstring convert(const std::string &from)
{
return std::wstring(from.begin(), from.end());
}

我的代码看起来是这样的:

string str2 = convert(wstring(L"hello"));

这就是我喜欢的方式:永远不要重复自己。偷懒。尽可能简单。 ^^

关于c++ - 字符串类型的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34330346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com