在C++中,我需要在运行时将字符串转换为任何类型,我不知道字符串中可能包含哪种类型。我听说有一个lexical_cast可以使用,但是实现它的最有效方法是什么?C++将字符串动态转换为任何基本类型
我可能会从客户端得到一堆这样的字符串:Date =“25/08/2010”,Someval =“2”,Blah =“25.5”。
现在我想能够将这些字符串转换为它们的类型,例如Somval显然是一个int类型,Date可以是boost :: date或其他类型。关键是,在这个时候我不知道这些东西会以什么顺序给我,所以很难写出一些代码来执行一堆转换。
我可以使用一堆if/else语句或switch/case语句,但是我认为有可能有更好的方法来做到这一点。
我不是在寻找不同的东西lexical_cast的,我完全可以使用,我想看看是否有人知道再一个更好的方式这样做:
std::string str = "256";
int a = lexical_cast<int>(str);
//now check if the cast worked, if not, try another...
这是太多猜测游戏,如果我有10种可能的类型,对于任何给定的字符串,这听起来有点无效。特别是如果它在任何特定时间必须做1000次。
任何人都可以建议吗?
亚历克斯·布朗笔记 - 的例子字符串是来自客户端的XML数据的片段。
[和往常一样](http://www.catb.org/esr/faqs/smart-questions.html):**为什么?** – GManNickG 2010-11-23 09:05:21
@GMan:你是什么意思?你不明白这个问题吗,或者你是否想要我尝试这样做的理由? – 2010-11-23 09:07:03