C语言用指针编写函数 : insert(s1,s2,f), 其功能是在字符串s1中的指定位置f处插入字符串s2。(f为整数,值从1开始)
时间: 2024-05-11 19:18:08 浏览: 169
以下是用指针编写的C语言函数insert(s1,s2,f)的代码:
```c
#include <stdio.h>
#include <string.h>
void insert(char *s1, char *s2, int f) {
int len1 = strlen(s1);
int len2 = strlen(s2);
char temp[len1 + len2 + 1]; // 临时数组,存放插入后的结果
// 拷贝s1中f之前的部分到temp数组中
strncpy(temp, s1, f - 1);
temp[f - 1] = '\0';
// 拼接s2到temp数组中
strcat(temp, s2);
// 拼接s1中f之后的部分到temp数组中
strcat(temp, s1 + f - 1);
// 将temp数组中的结果拷贝到s1中
strcpy(s1, temp);
}
int main() {
char s1[100] = "hello world";
char s2[20] = "beautiful ";
int f = 6;
insert(s1, s2, f);
printf("%s", s1); // 输出:hello beautiful world
return 0;
}
```
在函数中,我们首先通过strlen()函数获取s1和s2的长度,然后创建一个临时数组temp,它的长度为s1和s2长度之和再加1,因为我们需要在temp数组中加上一个字符串结束符'\0'。
接着,我们将s1中f之前的部分拷贝到temp数组中,使用strncpy()函数,它的第三个参数是拷贝的字符数,因此,我们需要拷贝f-1个字符。然后,我们在temp数组中拼接s2,使用strcat()函数,将s2直接拼接在temp数组中的'\0'处。最后,我们将s1中f之后的部分拼接到temp数组中,同样使用strcat()函数,第二个参数是s1+f-1,表示从s1中的第f个字符开始拼接。
最后,我们将temp数组中的结果拷贝回s1中,使用strcpy()函数。
在main()函数中,我们定义了一个字符串s1和一个字符串s2,并且定义了一个整数f表示要插入的位置。然后,我们调用insert()函数,将s2插入到s1的第f个字符之前。最后,我们输出s1的结果,即插入后的字符串。
阅读全文