#include #include #include #include #include int stringcasecmp(const std::string &a, const std::string &b) { return stricmp(a.c_str(), b.c_str()); } void ibm2ascii(std::string &s) { std::string new_s; new_s.reserve(s.size()); for(unsigned i=0; i=0 && ch<126) { if(ch>=' ') new_s+=ch; } else { switch(ch) { case '': new_s+="ae"; break; case '': new_s+="oe"; break; case '': new_s+="ue"; break; case '': new_s+="ss"; break; case '': new_s+='A'; new_s+=islower(s[i+1])?'e':'E'; break; case '': new_s+='O'; new_s+=islower(s[i+1])?'e':'E'; break; case '': new_s+='U'; new_s+=islower(s[i+1])?'e':'E'; break; default: break; } } } s=new_s; } void iso2ascii(std::string &s) { std::string new_s; new_s.reserve(s.size()); for(unsigned i=0; i=0 && ch<126) { if(ch>=' ') new_s+=ch; } else { switch(ch) { case '': new_s+="ae"; break; case '': new_s+="oe"; break; case '': new_s+="ue"; break; case '': new_s+="ss"; break; case '': new_s+='A'; new_s+=islower(s[i+1])?'e':'E'; break; case '': new_s+='O'; new_s+=islower(s[i+1])?'e':'E'; break; case '': new_s+='U'; new_s+=islower(s[i+1])?'e':'E'; break; default: break; } } } } void ibm2iso(std::string &s) { for(unsigned i=0; i