设为首页 加入收藏

TOP

4.10.5 与字符串的转换
2013-10-07 15:02:10 来源: 作者: 【 】 浏览:81
Tags:4.10.5 字符串 转换

4.10.5  与字符串的转换

uuid可以使用字符串生成器从字符串生成,但却没有提供一个反向的操作,不能直接获得一个uuid的字符串表示。因为uuid支持流输入输出,故可以使用std::stringstream转换为字符串,例如:

  1. uuid u = string_generator()                         //字符串生成器  
  2.     ("01234567-89ab-cdef-0123-456789abcdef");  
  3. stringstream ss;                                        //字符串流  
  4. ss << u;                                                //uuid输出到字符串流  
  5. string str;                                             //字符串对象  
  6. ss >> str;                                          //字符串流输出到字符串对象  
  7. cout << str << endl;  

这种方法虽然可行,但要写很多代码,比较麻烦,我们可以用另一个Boost库组件lexical_ cast(将在5.1节,第163页介绍),它可以非常方便地实现字符串与uuid的双向转换(得益于uuid的流输入输出功能):
  1. #include <boost/lexical_cast.hpp>                       // lexical_cast头文件  
  2. using namespace boost;  
  3. using namespace boost::uuids;  
  4. int main()  
  5. {  
  6.     uuid u = lexical_cast<uuid>                         //字符串转换到uuid  
  7.         ("01234567-89ab-cdef-0123-456789abcdef");  
  8.     cout << u << endl;  
  9.     string str = lexical_cast<string>(u);               //uuid转换到字符串  
  10.     cout << str << endl;  
  11. };  

lexical_cast的字符串转换uuid的用法很类似字符串生成器string_generator,但功能要弱很多,因为lexical_cast的转换功能是基于uuid的流输入能力,因此只能接受连字符格式的字符串,而且不能有花括号。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.10.6 SHA1摘要算法 下一篇4.11.3 禁止编译器警告

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: