65,208
社区成员
发帖
与我相关
我的任务
分享
char *et_str_cut(char *src, size_t begin, size_t need_len)
{
size_t src_len = strlen(src);
size_t i = 0;
size_t dst_len = src_len - need_len;
if(begin + need_len > src_len)
{
return src;
}
for(i = begin; i < dst_len; i++)
{
src[i] = src[i + need_len];
}
src[dst_len] = '\0';
return src;
}
void func( std::string &s ){
size_t off1 = 0, off2;
while( true ){
off1 = s.find( '<', off1 );
if( off1 == -1 ){
break;
}
else{
off2 = s.find( '>', off1 );
if( off2 == -1 )
off1 += 1;
else
s.erase( off1, off2 - off1 + 1 );
}
}
}
int et_str_s2i(const char *src);
char *et_str_i2s(int num, char *dst);
long et_str_s2l(const char *src);
char *et_str_l2s(long num, char *dst);
double et_str_s2f(const char *src);
char *et_str_f2s(float num, char *dst);
char *et_str_c2s(char *dst, char ch);
char et_str_s2c(const char *src);
int et_str_c2i(char ch);
bool et_str_contains(const char *src, char ch);
char *et_str_rev(char *src);
char *et_str_pre(const char *pre, char *src);
char *et_str_repeat(char *dst, const char *src, size_t times);
char *et_str_addslashes(char *dst, const char *src, char find);
char *et_str_stripslashes(char *dst, const char *src, char find);
char *et_str_bin2dec(char *dst, const char *src);
char *et_str_dec2bin(char *dst, const char *src);
char *et_str_hex2dec(char *dst, const char *src);
char *et_str_dec2hex(char *dst, const char *src);
char *et_str_bin2hex(char *dst, const char *src);
char *et_str_hex2bin(char *dst, const char *src);
char *et_str_tolower(char *src);
char *et_str_toupper(char *src);
char *et_str_sub(char *dst, const char *src, size_t start, size_t len);
int et_str_pos(const char *src, const char *find);
int et_str_pos_from(const char *src, const char *find, size_t from_pos);
int et_str_rpos(const char *src, const char *find);
size_t et_str_count(const char *src, const char *find);
char *et_str_trim(char *src);
char *et_str_ltrim(char *src);
char *et_str_rtrim(char *src);
char *et_str_pad(char *src, char *pad_str, size_t pad_len);
char *et_str_lpad(char *src, char *pad_str, size_t pad_len);
char *et_str_rpad(char *src, char *pad_str, size_t pad_len);
char *et_str_cut(char *src, size_t begin, size_t need_len);
char *et_str_insert(char *src, const char *append, size_t begin);
char *et_str_splice(char *src, size_t begin, size_t len, const char *insert);
char *et_str_replace(char *src, const char *find, const char *replace);
char **et_str_arr_alloc(char ***arr, size_t rows, size_t cols);
char **et_str_arr_free(char ***arr, size_t rows);
char **et_str_split(char **dst, size_t *size, const char *src, const char* delimiter);
char *et_str_join(char *dst, const char* delimiter, const char **src, size_t size);
char *et_str_cap(char *src);
char *et_str_uncap(char *src);
bool et_str_has_chs(const char *src);
bool et_str_is_chs(const char *src);
bool et_str_is_int(const char *src);
bool et_str_is_float(const char *src);
bool et_str_is_email(const char *src);
bool et_str_is_domain(const char *src);
bool et_str_is_uri(const char *src);
bool et_str_is_ymd(const char *src);
char *et_str_fix_num(char *src,size_t dec_len);
char *et_str_md5(char *dst, const char *src);
char *et_str_sha1(char *dst, const char* src);
char *et_str_crc(char *dst, const char* src);
char *et_str_base64_enc(char *dst, const char *src);
char *et_str_base64_dec(char *dst, const char *src);
char *et_str_url_enc(char *dst, const char *src);
char *et_str_url_dec(char *dst, const char *src);
char *et_str_xml_enc(char *dst, const char *src);
char *et_str_xml_dec(char *dst, const char *src);
char *et_str_xml_clear(char *dst, const char *src);
int et_str_pos_from(const char *src, const char *find, size_t from_pos)
{
int bMatch = 0;
size_t len_src = strlen(src);
size_t len_find = strlen(find);
size_t i = 0;
int pos = -1;
int temp_pos = 0;
size_t match_count = 0;
if(len_src - from_pos < len_find
|| from_pos < 0
|| from_pos >= len_src
|| from_pos < 0)
{
return -1;
}
for(i = from_pos; i < len_src; i++)
{
if(!bMatch)
{
if(src[i] == find[0])
{
bMatch = 1;
match_count = 1;
temp_pos = i;
}
else
{
continue;
}
}
else
{
if(src[i] == find[match_count])
{
match_count++;
}
else
{
bMatch = 0;
match_count = 0;
}
}
if(match_count == len_find)
{
return temp_pos;
}
}
return -1;
}
char *et_str_xml_clear(char *dst, const char *src)
{
int left_bracket_pos = 0;
int right_bracket_pos = 0;
int pos = 0;
strcpy(dst,src);
left_bracket_pos = et_str_pos_from(dst,"<",pos);
right_bracket_pos = et_str_pos_from(dst,">",pos);
while(left_bracket_pos != -1
&& right_bracket_pos != -1
&& left_bracket_pos < right_bracket_pos )
{
pos = left_bracket_pos;
et_str_cut(dst,left_bracket_pos,right_bracket_pos - left_bracket_pos + 1);
left_bracket_pos = et_str_pos_from(dst,"<",pos);
right_bracket_pos = et_str_pos_from(dst,">",pos);
}
return dst;
}