C++中去除字符串中的无效字符,用于加载配置文件

来源:互联网 发布:java线程池控制并发 编辑:程序博客网 时间:2024/06/06 14:11
void trim1(char * str, char c)
{
c=' ';
char * sp=str;
while(*str)
{
if(*str!=c)
{
*sp=*str;
sp++;
}
str++;


}
sp='\0';


}
void trim2(string& str,string& del,string::size_type pos=0)
{
pos=str.find_first_of(del,pos);
if(pos=string::npos)
return ;
trim2(str.erase(pos,1),del);
}
static bool readConfigFile(const char* filePath,const string& key,string& value)
{
   fstream cfgFile;
   //打开文件
   cfgFile.open(filePath);
   if(cfgFile.is_open())
   {
  cout<<"cant not open file\n";
  return false;
   }
   char temp[1000];          //此处必须是字符数组
   while(!cfgFile.eof())
   {
  cfgFile.getline(temp,1000);
  string line(temp);
  trim2(line," ");
  size_t pos=line.find('=');
  if(pos==string::npos)
  return false;
  string strkey=line.substr(0,pos);   //获取的key 和value还需要trim
  if(strkey==key)
  {
  value=line.substr(pos+1);
  return true;
  }
   }
   return false;
}
0 0
原创粉丝点击