c语言程序编制一个将一个字符串插入到另一个字符串的指定位置的函数。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言程序编制一个将一个字符串插入到另一个字符串的指定位置的函数。相关的知识,希望对你有一定的参考价值。
#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;
请问哪里出错了?为什么没办法输出
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的后半部分没了是什么原因呢?
追答插入之后当然覆盖了
追问怎么才能把后半部分接在字符串1后面输出呢
追答#include<stdio.h>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(*x++);
while((*x++=*y++)!='\\0');
x=a;
y=b+i;
while((*y=*x++)!='\\0') y++;
while((*y++=*x++)!='\\0');
printf("%s",b);
return 0;
参考技术A #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。
c_cpp 将一个字符串复制到另一个
以上是关于c语言程序编制一个将一个字符串插入到另一个字符串的指定位置的函数。的主要内容,如果未能解决你的问题,请参考以下文章
如何编写函数,用C++语言实现将一个字符串插入到另一个字符串的指定位置,最好用指针指向字符串来实现?
C语言,将一个字符串中的元音字母复制到另一个字符串,然后按照ASCII码从小到大的顺序输出。
c语言strcpy将一个结构体的数据复制到另一个后,出问题了