编写一个函数insert(s1,s2,ch),实现在字符串s1中的指定字符ch位置处插入字符s2. 高财富哦
1个回答
展开全部
是这个意思吗?
C语言实现,insert函数未对传入字符串进行边界检测,如果传入数组已满,函数会更改在内存连续的地址上的未知内容,故需保证传入数组未满。如果要在函数中处理需增设一个参数传入数组长度进行判断,以下是代码,包括测试的主函数部分:
#include <stdio.h>
#include <string.h>
void insert(char *s1,char s2,char ch)
{
char *pos;
char *insert_flag;
for(pos=s1;*pos!='\0'&&*pos!=ch;pos++); //在s1里寻找字符ch
if('\0'==*pos)
{
printf("未找到字符'%c'!\n",ch);
return;
}
for(insert_flag=s1+strlen(s1);*insert_flag!=ch;insert_flag--) //从s1指向字符串的结束符开始元素依次后移
{
*(insert_flag+1)=*insert_flag;
}
*(insert_flag+1)=*insert_flag;
*insert_flag = s2;
}
void main()
{
char s[20]="hello,frind";//把20改为12则数组满
printf("插入前%s\n",s);
if(strlen(s)!=sizeof(s)-1)
{
insert(s,'e','n');
printf("插入后%s\n",s);
}
else printf("数组已满,拒绝插入!\n");
}
测试:
追问
我也不知道对不对
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询