用指针编写函数 : insert(s1,s2,f), 其功能是在字符串 s1 中的指定位置 f 处插入字符 串 s2

如题所述

在C语言中,可以使用指针编写一个名为insert的函数,该函数的功能是在字符串s1的指定位置f处插入字符串s2。函数定义如下:

char *insert(char *s1,char *s2,int f)

函数内部首先定义了一个字符数组s3,用于存储插入后的字符串。接着通过一个条件判断,检查s1在位置f-1处的字符是否为字符串结束符'\0'。如果为'\0',则直接返回s1。然后计算s2的长度,并将s1前f个字符复制到s3。接着将s2的内容插入到s3的相应位置。最后将s1从位置f开始的内容复制到s3,最终返回s3。

在主函数main中,首先声明了两个字符数组s1和s2,以及一个整型变量f。通过输入语句获取用户输入的两个字符串和插入位置f。调用insert函数并打印出插入后的字符串。

示例代码如下:

#include"stdio.h" #include"string.h"
char *insert(char *s1,char *s2,int f) {
char s3[80];
int a,i,j;
if(*(s1+f-1)!='\0') {
for(i=0;i<f;i++)
s3[i]=*(s1+i);
else return s1;
a=strlen(s2);
for(j=0;j<a;j++)
s3[i++]=*(s2+j);
for(j=f;j<strlen(s1);j++)
s3[i]=*(s1+j);
return s3;
}
}

main() {
char s1[40]={'\0'},s2[40]={'\0'};
int f;
printf("please input two strings:\n");
gets(s1);
getchar();
gets(s2);
printf("please input an int to cut the string:\n");
scanf("%d",&f);
printf("the new string is:%s\n",insert(s1,s2,f));
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜