字符串中的TOUPPER函数
std::string& str_toupper(std::string&s) {
std::transform(s.begin(), s.end(), s.begin(),
[](unsignedchar c){ return ::toupper(c); } //correct );returns;
}
std::string& str_toupper(std::string&s) {
std::transform(s.begin(), s.end(), s.begin(),
[](unsignedchar c){ return ::toupper(c); } //correct );returns;
}
std::string& ltrim(std::string& str, const std::string& chars = "\t\n\v\f\r");
std::string& rtrim(std::string& str, const std::string& chars = "\t\n\v\f\r");
std::string& trim(std::string& str, const std::string& chars = "\t\n\v\f\r");
std::string& ltrim(std::string& str, const std::string&chars)
{
str.erase(0, str.find_first_not_of(chars));returnstr;
}
std::string& rtrim(std::string& str, const std::string&chars)
{
str.erase(str.find_last_not_of(chars)+ 1);returnstr;
}
std::string& trim(std::string& str, const std::string&chars)
{returnltrim(rtrim(str, chars), chars);
}
unsigned char HEX2BYTE(unsigned charhex_ch)
{if (hex_ch >= '0' && hex_ch <= '9')
{return hex_ch - '0';
}if (hex_ch >= 'a' && hex_ch <= 'f')
{return hex_ch - 'a' + 10;
}if (hex_ch >= 'A' && hex_ch <= 'F')
{return hex_ch - 'A' + 10;
}return 0x00;
}
unsignedchar _4BIT2HEX(unsigned charpart_cn)
{if (part_cn >= 10) {return (unsigned char )(part_cn - 10 + 'A');
}else{return (unsigned char )(part_cn + '0');
}
}void StrToHex(const unsigned char* in, long inlen, unsigned char* out, long*outlen)
{*outlen = inlen/2;
memset(out, 0, *outlen);for (int i = 0; i < *outlen; i ++) {out[i] = (HEX2BYTE(in[i*2]) << 4) | HEX2BYTE(in[i*2 + 1]);
}
}void HexToStr(const unsigned char* in, long inlen, unsigned char* out, long*outlen)
{*outlen = inlen*2;
memset(out, 0, *outlen + 1);for (int i = 0, j = 0; i < *outlen; i ++, i++, j++) {out[i] = _4BIT2HEX(((in[j]) & 0xF0)>>4);out[i+1] = _4BIT2HEX(((in[j]) & 0x0F));
}
}