首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

提取字符出现的一个小疑点.

2012-03-13 
提取字符出现的一个小问题..现有test.txt文件内容如下:数量:13个名称:成都上海乌鲁木齐广州深圳西安重庆伦

提取字符出现的一个小问题..
现有test.txt文件
内容如下:    

数量:13个
名称:成都     上海     乌鲁木齐
      广州     深圳
    西安     重庆     伦敦     天津    
浙江     安徽     河南     河北

数量:2个
名称:广州     深圳


我想提取中间的数字13,转换为数值,因为循环中要用到
因为数字是未知的,所以不能用str.find( "13 ")-48这样的方法来实现

我用下面的方法:
......
class   IsNum
{
public:
bool   operator()(char   c)
{
if(c> =   48   &&   c   <=   57)
return   false;
return   true;
}
};
......
tmp.erase(remove_if(tmp.begin(),tmp.end(),IsNum()),tmp.end());
......
已经能够提取到想要的字符了

用count   =   tmp- '0 ';
但就是不能把它转换成数值

感觉就差一步了,郁闷ING

[解决办法]
有专门的库函数啊,包括你写的判断数字还是字母的函数也有。
atoi和itoa,一个是字符串转整数,一个是整数转字符串。在帮助里搜下有完整说明。
[解决办法]
#include <cctype>
using namespace std;

.....
isdigit(c)
如果c是数字返回true
[解决办法]
... 
istringstream t( tmp.substr(tmp.find(":")+2) ); 
t > >count; //get count 
... 

热点排行