//1#2#3#4#5#.... //sign = '#'
int mxGetNums (char*data ,char sign)
{
int nums = 0;
char* sp = data;
while (1)
{
char *temp = strchr(sp, sign);
if (temp == NULL) {
break;
}
sp = temp+1;
nums++;
}
return nums;
}
char* mxDeleteAtIndex(char*data ,int index ,char sign)
{
int nums = 0;
char* sp = data;
while (index != 0)
{
char *temp = strchr(sp, sign);
if (temp == NULL) {
return NULL;
}
sp = temp+1;
nums++;
if (nums == index) {
break;
}
}
char *ep = strchr(sp, sign);
if (ep == NULL) return NULL;
int datalen = strlen(data);
int lastlen = ep - data + 1;
if (datalen == lastlen)
{
return NULL;//最后一个不需要删除了。
}
char *newData = (char*)malloc(strlen(data));
memset(newData,0,strlen(data));
int frontlen = sp - data;
memcpy( newData,data,frontlen );//前面index个,带sign符号
//int afterLen = ep
strcpy( newData + strlen(newData),ep+1 );
return newData;
}
char* mxGetAtIndex(char*data ,int index ,char sign)
{
int nums = 0;
char* sp = data;
while (index != 0)
{
char *temp = strchr(sp, sign);
if (temp == NULL) {
return NULL;
}
sp = temp+1;
nums++;
if (nums == index) {
break;
}
}
char *ep = strchr(sp, sign);
if (ep == NULL) return NULL;
int len = ep - sp;
if (len <= 1) return NULL;
char *returndata = (char*)malloc(len+1);
memset(returndata, 0, len+1);
memcpy(returndata, sp,len);
return returndata;
}