中英文混合字符串截取
static void cored_hubeicom_substr(const char *src, char *dest, int start, int len)
{
//char src[256]="abde理40万吨含锌废渣abde";
int byte_count = 0; // 记录字节数
int src_length = strlen(src);
int byte_count_zh = 0;// 记录字节数
int j = -1;
int i = 0;
//printf("\033[0m\033[40;34m src_length:%d [%s:%d]\033[0m\n",src_length,__func__, __LINE__);
for ( i = 0; i < src_length; ++i)
{
if ((src[i] & 0xC0) != 0x80) // 判断是否为UTF-8字符的首字节
{
byte_count++;
j = 0;
}
else//add
{
if(!j)
{
byte_count_zh ++;
}
j++;
}
//if (byte_count <= len)
if (i < len) //change
{
*dest++ = src[i];
}
else
{
if(j>0)//add
{
dest -= j;
}
break;
}
}
*dest = '\0'; // 添加字符串结束符
//printf("i:%d;byte_count:%d;byte_count_zh:%d;char_zh:%d",i,byte_count,byte_count_zh,j);
return;
}
/