,其功能是在字符串 s1的指定位置f前插入字符串s2,要求函数首部为:voidinsert(char *sl,char *s2,int f)。
时间: 2024-03-15 15:44:07 浏览: 116
在一个字符串中的选定字符后面插入另一个字符串。
4星 · 用户满意度95%
好的,你的问题是如何实现insert函数,在字符串s1的指定位置f前插入字符串s2,对吧?那么这个问题可以这样解决:
1. 首先计算出插入字符串的长度len2。
2. 然后计算出插入位置的长度len1。
3. 为插入后的字符串分配内存空间。
4. 将s1中f位置之前的字符串拷贝到新的字符串中。
5. 将s2拷贝到新的字符串中。
6. 将s1中f位置之后的字符串拷贝到新的字符串中。
7. 将新的字符串赋值给s1。
下面是代码实现:
```c
void insert(char *s1, char *s2, int f) {
int len1 = strlen(s1);
int len2 = strlen(s2);
char *newstr = (char*)malloc(len1 + len2 + 1);
strncpy(newstr, s1, f);
newstr[f] = '\0';
strcat(newstr, s2);
strcat(newstr, s1 + f);
strcpy(s1, newstr);
free(newstr);
}
```
这样,就可以在字符串s1的指定位置f前插入字符串s2了。
阅读全文