1. 插入
将s2插入s1第n个位置中
/**
* @brief insert s2 into s1 at position n
*
* @param s1
* @param s2
* @param n
*
* @return 0
*/
int strins(char *s1, char *s2, size_t n)
{
size_t n1, n2;
n1 = strlen(s1);
if (n > n1)
n = n1;
n2 = strlen(s2);
memmove(s1 + n + n2, s1 + n, n1 - n + 1);
memcpy(s1 + n, s2, n2);
return 0;
}
2.截取
截取str1中 位于str2和str3中的字符串,并输出到out_char
/**
* @brief save the string between str2 to str3 in str1 to out_str
*
* @param str1
* @param str2
* @param str3
* @param out_str
*
* @return s1
*/
int mystrstr(char* str1,char* str2,char* str3,char* out_str)
{
char dest[100] = {0};
memset(dest,0,100);
char *p1, *p2,*p3;
p1 = strstr(str1, str2);
//printf("p1 = %s\n",p1);
int len = strlen(p1)+1;
p3 = (char*)malloc(sizeof(char)*len);
strcpy(p3, p1+1);
//printf("p3 = %s\n",p3);
p2 = strstr(p3, str3);
printf("p2 = %s\n",p2);
if (p3 == NULL || p2 == NULL || p3 > p2) {
// printf("Not found\n");
return -1;
} else {
//p3 += strlen("str2");
memcpy(dest, p3, p2 - p3);
//printf("%s\n", dest);
}
//printf("dest = %s\n", dest);
memcpy(out_str,dest,sizeof(dest));
free(p3);
return 0;
}