C语言中怎样才能在指定位置插入字符串
输入两个字符串s1、s2和s1中任意字符k,在s1中的指定字符k第一次出现的位置处插入字符串s2并输出。输入:两个字符串s1、s2和s1中任意字符k输出:插入后的字符串s...
输入两个字符串 s1 、 s2 和 s1 中任意字符 k ,在 s1 中的指定字符 k 第一次出现的位置处插入字符串 s2 并输出。
输入: 两个字符串 s1 、 s2 和 s1 中任意字符 k
输出: 插入后的字符串 s1
如输入beijing 123 j
输出 bei123jing 展开
输入: 两个字符串 s1 、 s2 和 s1 中任意字符 k
输出: 插入后的字符串 s1
如输入beijing 123 j
输出 bei123jing 展开
4个回答
展开全部
设计过程:
定义两个字符串s2,s2,字符k
输入两个字符串 s1 、 s2 和 s1 中任意字符 k
先遍历 s1 找到指定字符 k,记录下当前位置
从k字符开始,按s2的长度后移其余的数据
将s2拷贝到k所在的位置
输出s1。
代码如下:
#include <stdio.h>
#include <string.h>
void main()
{
char s1[100];
char s2[20];
char k;
int i,pos,len;
printf("input s1: ");scanf("%s", s1 );
printf("input s2: ");scanf("%s", s2 );
getchar();//滤掉回车符
printf("input k: ");scanf("%c", &k );
for( i=0;s1[i];i++ )
{
if ( s1[i]==k )
break;
}
pos=i; //记录下待插入的位置
len=strlen(s2); //得到s2长度
for( i=strlen(s1);i>=pos;i-- ) //后移字符串
{
s1[i+len]=s1[i];
}
strncpy( &s1[pos], s2, len ); //插入数据
printf("%s\n", s1 ); //输出字符串
}
2013-09-07
展开全部
一楼的胡说,我告诉你将s1定义数组赋值,将s2定义数组赋初值,将数组S3包含S1和S2并移位,将S3输出就OK了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-07
展开全部
把"beijing"放到字符数组中.
把"123"放到另一个字符数组中.
在申请一个足够大的数组空间,按照这个下表给赋上这两个字符值.
把"123"放到另一个字符数组中.
在申请一个足够大的数组空间,按照这个下表给赋上这两个字符值.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-07
展开全部
也许用链表比较好实现,下面是用数组实现的程序:
#include<stdio.h>
#include<string.h>
main()
{ int i,j,k,m,n;
char a[100],b[100],c;
gets(a);
gets(b);
c=getchar();
m=strlen(a);
for(i=0;i<m;i++)
{if(a[i]==c)<br/> break;<br/> }
if(i>=m)
{printf("出错!\n");<br/> return;<br/> }
n=strlen(b);
k=m;
for(j=m+n;j>i;j--,k--)
a[j]=a[k];
for(j=i,k=0;j<n+i;j++,k++)
a[j]=b[k];
printf("%s\n",a);
}
#include<stdio.h>
#include<string.h>
main()
{ int i,j,k,m,n;
char a[100],b[100],c;
gets(a);
gets(b);
c=getchar();
m=strlen(a);
for(i=0;i<m;i++)
{if(a[i]==c)<br/> break;<br/> }
if(i>=m)
{printf("出错!\n");<br/> return;<br/> }
n=strlen(b);
k=m;
for(j=m+n;j>i;j--,k--)
a[j]=a[k];
for(j=i,k=0;j<n+i;j++,k++)
a[j]=b[k];
printf("%s\n",a);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询