编写算法,将字符串t插入到字符串s中第i个字符位置

有没有人在啊,想请讲解下,编写算法,将字符串t插入到字符串s中第i个字符位置
最新回答
微光

2025-03-02 06:18:20

#include<stdio.h>
#include<string.h>
#include<memory.h>
void copys2s(char * src,char * dest,int loca)
{
char temp[100];

memset(temp,0,100);//初始化temp为0
strcpy(temp,src+loca-1); //把loca后面的字符串暂存起来

strcpy(src+loca-1,dest);//拷贝dest到src的从loca开始的位置

strcat(src,temp);//还原src从loca位置开始的字符串
}

void main()
{
char src[100];
char dest[100];

int loca=0;
printf("Please input src:");
gets(src);

printf("Please input dest:");
gets(dest);

printf("Please input the location:");
scanf("%d",&loca);

copys2s(src,dest,loca);

printf("New src is:%s\n",src);
return;
}
[MAX]中的MAX是宏定义,预编译的时候用100替换。
靠张根硕呼吸

2025-03-02 04:07:45

#include<stdio.h>
#define MAX 100
void insert(char a[MAX],char b[MAX],int i)
{
int alen=0,blen=0,k;
while(a[alen]!='\0')
{alen++;}/*获取数组a的长度*/
while(b[blen]!='\0')
{blen++;}/*获取数组b的长度*/

for(k=alen+blen-1;k>=blen+i-1;k--)
a[k]=a[k-blen];
for(k=i-1;k<i+blen-1;k++)
a[k]=b[k-i+1];
a[alen+blen]='\0';
}

void main()
{
int i,n;
char a[MAX],b[MAX];
printf("please input the 1st string:");
gets(a);
printf("please input the 2nd string:");
gets(b);
printf("please input the number:");
scanf("%d",&n);
insert(a,b,n);
for(i=0;a[i]!='\0';i++)
printf("%c",a[i]);
}
话青梅

2025-03-02 02:39:42

k就是一个循环变量
alen
blen是两个数组的长度就是size
下面的void
main()就是要求的将字符b插入字符a的第i个字符位置的函数,加头文件
可以用strlen()直接求出两个字符串长度。。。
#include

#define
max
100
void
insert(char
a[max],char
b[max],int
i)
{
int
alen=0,blen=0,k;
while(a[alen]!='\0')
{alen++;}/*获取数组a的长度*/
while(b[blen]!='\0')
{blen++;}/*获取数组b的长度*/
for(k=alen+blen-1;k>=blen+i-1;k--)
a[k]=a[k-blen];
for(k=i-1;k

评论
0

0

0

加载更多