vector<int> stat(string s) { vector<int> outvec(26,0); for(int i = 0; i < s.length(); i++) { char c = s[i]; ++outvec[c - 'a']; } return outvec; }
const bool CharsetConverter::Convert(const std::string &input, std::string &output) { if(m_iconv!=(iconv_t)-1) { if(input.size()==0) { return true; } std::vector<char> invec(input.begin(),input.end()); std::vector<char> outvec(invec.size()*4,0); #if defined(_WIN32) || defined(__FreeBSD__)//|| defined(__APPLE__) || defined(__DARWIN__) const char *inptr=&invec[0]; #else char *inptr=&invec[0]; #endif char *outptr=&outvec[0]; size_t insize=invec.size(); size_t outsize=outvec.size(); size_t rval=0; rval=iconv(m_iconv,&inptr,&insize,&outptr,&outsize); if(outsize>=0) { outvec.resize(outptr-&outvec[0]); output=""; output.append(outvec.begin(),outvec.end()); return true; } else { return false; } } else { return false; } }