Sign-up....

小声的问个std::string的问题,怎么用起来特麻烦呢?

以前一直做BCB和DELPHI,比较习惯于AnsiStirng这样的懒汉字符串类。刚刚开始接触STD,所以特意在最近的项目中尽量用STD,但是std::string用的我很不顺手,特意小声问问,请大虾们指教。

问:

std::string提供了compare(),find(),assign(),及迭代器函数,还有dec,hex等数制变化等,但是有没有提供各种数据类型与它之间的变换函数呢?就象BCB里的IntToStr(),TryStrToInt(),TryStrToFloat(),TDate.DateString()?

我觉得std::string最让我头疼的就是类型转换:字符串与整数之间、字符串与浮点数之间、字符串与日期时间之间、字符与ASCII码之间,好像都要自己写。是这样吗?

相比来BCB的AnsiString类比较好用,常用的转换函数几乎都有现成的,std::string如果没有提供这些功能,那么应该在什么情况下用比较合适呢?

望大虾赐教。

[454 byte] By [msdn] at [2007-8-14 12:57:51]
# 1 Re: 小声的问个std::string的问题,怎么用起来特麻烦呢?

如果程序要移植到其他环境中重新编译,最好用STL,否则用AnsiString确实方便很多。

现在,在Linux中也有了Kylix3,不怕AnsiString的移植问题,所以用AnsiString也没问题。

xteaj at 2004-10-3 9:56:20 >
# 2 Re: 小声的问个std::string的问题,怎么用起来特麻烦呢?

std::string似乎没有提供operator char*,但是它提供了std::string::c_str()这个函数,通过这个函数就可以调用atoi之类的函数了

//示例

std::string mystr("123");

int ival=atoi(mystr.c_str());

somedummy at 2004-10-3 10:04:14 >
# 3 Re: 小声的问个std::string的问题,怎么用起来特麻烦呢?

是啊..,

尤其就是std::string和char *之间不能相互转换..

会引出好多问题..

newegg2002 at 2004-10-3 10:48:25 >
# 4 Re: 小声的问个std::string的问题,怎么用起来特麻烦呢?

看来是不太好用呀,谢谢各位了。

liusamye at 2004-10-3 11:09:48 >
# 5 Re: 小声的问个std::string的问题,怎么用起来特麻烦呢?

使用stringstream

stringstream ss;

int i=1;

ss<<i;

string s=ss.str();

int j;

ss>>j;

heroboy2000 at 2004-10-3 14:26:50 >
# 6 Re: 小声的问个std::string的问题,怎么用起来特麻烦呢?

heroboy2000(动感超人)的代码解决了我的大部分问题,我想分数都应该给他了,同时谢谢其他大虾给我的回答。

liusamye at 2004-10-4 9:24:09 >

C/C++

All Classified