c语言程序编制一个将一个字符串插入到另一个字符串的指定位置的函数。
#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(){chara[100],b[100],*x,*...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char a[100],b[100],*x,*y;
int i,m,n,k,l;
printf("输入字符串1:");
scanf("%s",a);
getchar;
printf("输入字符串2:");
scanf("%s",b);
getchar;
x=a[0];
y=b[0];
printf("将字符串1插入到字符串2的第几个字符后:");
scanf("%d",&i);
m=strlen(a);
n=strlen(b);
for(k=i+1;k<=(n-i);k++)
*(y+m+i+1)=*(y+i+1);
for(l=0;l<m;l++)
*(y+i+1)=*(x+l);
printf("\n%s",b);
return 0;
}
请问哪里出错了?为什么没办法输出 展开
#include <stdlib.h>
#include <string.h>
int main()
{
char a[100],b[100],*x,*y;
int i,m,n,k,l;
printf("输入字符串1:");
scanf("%s",a);
getchar;
printf("输入字符串2:");
scanf("%s",b);
getchar;
x=a[0];
y=b[0];
printf("将字符串1插入到字符串2的第几个字符后:");
scanf("%d",&i);
m=strlen(a);
n=strlen(b);
for(k=i+1;k<=(n-i);k++)
*(y+m+i+1)=*(y+i+1);
for(l=0;l<m;l++)
*(y+i+1)=*(x+l);
printf("\n%s",b);
return 0;
}
请问哪里出错了?为什么没办法输出 展开
2个回答
展开全部
int main()
{
char a[100],b[100],*x,*y;
int i;
printf("输入字符串1:");
scanf("%s",a);
printf("输入字符串2:");
scanf("%s",b);
printf("将字符串1插入到字符串2的第几个字符后:");
scanf("%d",&i);
x=a;
y=b+i;
while((*y++=*x++)!='\0');
printf("%s",b);
return 0;
}
更多追问追答
追问
输出之后字符串2的后半部分没了是什么原因呢?
追答
插入之后当然覆盖了
展开全部
#include<stdio.h>
#include<string.h>
int main()
{
char a[100],b[100],c,e[100],f[100];
int i,j,p,flag=0;
printf("Input source string 1:\n");
scanf("%s",a);
printf("Input inserted string 2:\n");
scanf("%s",b);
printf("Input a letter to locate the index:\n");
getchar();
scanf("%c",&c);
p=strlen(a);
for(i=0;i<p;i++)
{
e[i]=a[i];
if(a[i]==c)
{
flag=1;
e[i]='\0';
for(j=i;j<p;j++)
{
f[j-i]=a[j];
}
break;
}
}
if(!flag)
printf("Not found!");
else
{
strcat(e,b);
strcat(e,f);
printf("The new string is:%s",e);
}
return 0;
}
可以插到字符串一的指定位置——假设是字符串为asdfghj,12345,输入d,则结果为as12345dfghj。
#include<string.h>
int main()
{
char a[100],b[100],c,e[100],f[100];
int i,j,p,flag=0;
printf("Input source string 1:\n");
scanf("%s",a);
printf("Input inserted string 2:\n");
scanf("%s",b);
printf("Input a letter to locate the index:\n");
getchar();
scanf("%c",&c);
p=strlen(a);
for(i=0;i<p;i++)
{
e[i]=a[i];
if(a[i]==c)
{
flag=1;
e[i]='\0';
for(j=i;j<p;j++)
{
f[j-i]=a[j];
}
break;
}
}
if(!flag)
printf("Not found!");
else
{
strcat(e,b);
strcat(e,f);
printf("The new string is:%s",e);
}
return 0;
}
可以插到字符串一的指定位置——假设是字符串为asdfghj,12345,输入d,则结果为as12345dfghj。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询