将字符串插入到另一个字符串的指定位置(串)
时间: 1ms 内存:128M
描述:
将字符串t插入到字符串s中,在位置pos后插入。不得使用字符串操作函数,输出组合成的字符串。
输入:
输入两个字符串(t和s)和要插入的位置(pos)
输出:
输出组合后的字符串
示例输入:
qwe
jij
3
示例输出:
jijqwe
提示:
参考答案(内存最优[752]):
#include <stdio.h>
#include <stdlib.h>
typedef struct string{
char c;
struct string *link;
}String;
String *creat(String **rail){
char c;
String *p,*q,*head=NULL;
while((c=getchar())!='\n'){
p=malloc(sizeof(String));
p->c=c;
if(head==NULL)
head=q=p;
else{
q->link=p;
q=p;
}
}
q->link=NULL;
*rail=q;
return head;
}
int main(){
int n,i;
String *head1,*head2,*p,*rail1,*rail2;
head1=creat(&rail1);
p=head2=creat(&rail2);
scanf("%d",&n);
for(i=0;i<n-1;i++)
p=p->link;
rail1->link=p->link;
p->link=head1;
for(p=head2;p!=NULL;p=p->link)
printf("%c",p->c);
return 0;
}
参考答案(时间最优[0]):
#include <stdio.h>
#include <stdlib.h>
typedef struct string{
char c;
struct string *link;
}String;
String *creat(String **rail){
char c;
String *p,*q,*head=NULL;
while((c=getchar())!='\n'){
p=malloc(sizeof(String));
p->c=c;
if(head==NULL)
head=q=p;
else{
q->link=p;
q=p;
}
}
q->link=NULL;
*rail=q;
return head;
}
int main(){
int n,i;
String *head1,*head2,*p,*rail1,*rail2;
head1=creat(&rail1);
p=head2=creat(&rail2);
scanf("%d",&n);
for(i=0;i<n-1;i++)
p=p->link;
rail1->link=p->link;
p->link=head1;
for(p=head2;p!=NULL;p=p->link)
printf("%c",p->c);
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。