设计函数char *insert(s1,s2,n),用指针实现在字符串s1中的指定位置n处插入字符串s2

 我来答
qinchnwpu
2008-06-24 · 超过35用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:99万
展开全部
#include<stdio.h>
#include<stdlib.h>

int length(char *s);
char *insert(char *s1, char *s2, int n);

void main()
{
char *s1 = "I am going!", *s2 = "not ";
s1 = insert(s1, s2, 5);
printf("%s\n", s1);
free(s1); // 插入字符串时动态申请数组
}

// 把字符串s2插入到字符串s1中的第n位置,存放到字符串s中,并返回
char *insert(char *s1, char *s2, int n)
{
int n1 = length(s1);
int n2 = length(s2);
int i;
char *s = NULL;

if(n > n1 || n < 0)
{
printf("位置n错误!\n");
return s1;
}

s = (char *)malloc(n1+n2+1);

for(i=0; i<n; i++)
{
*(s+i) = *(s1++);
}

for(;*s2 != '\0'; i++)
{
*(s+i) = *(s2++);
}

for(;*s1 != '\0'; i++)
{
*(s+i) = *(s1++);
}

*(s+i) = '\0';

return s;
}

// 计算字符串的长度
int length(char *s)
{
int len = 0;
while(*(s++) != '\0') len++;
return len;
}
fcbdf
推荐于2016-12-04 · 超过36用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:124万
展开全部
#include <stdio.h>

char* insert(char* s1,char* s2,int n)
{
int j=0;
char* ss=new char[100];
char* tsptr=ss;

for(int i=0;i<n;i++)
*ss++=*s1++;
while(*s2!='\0')
*ss++=*s2++;
while(*s1!='\0')
{
*ss++=*s1++;
}
*ss='\0';
return tsptr;
}
void main()
{
char s1[]="123456789";
char s2[]="1234";
char* ss=insert(s1,s2,4);
printf("%s",ss);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lrigym
2008-06-24 · TA获得超过913个赞
知道答主
回答量:192
采纳率:0%
帮助的人:174万
展开全部
char* insert(char* s1, char* s2, int n)
{
strcat(s2, s1+n+1);
s1[n+1] = 0;
strcat(s1, s2);
return s1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式