Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
32029 | yejiaxiangBMT | 拼接字符串 | C++ | 通过 | 3 MS | 184 KB | 1189 | 2023-11-24 16:13:11 |
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> int main() { char a[300],b[100],c[100],d[500]; int i,stage,n; char *p1,*p2,*p3,*q1,*q2; gets(a); gets(b); gets(c); p1=a; p3=c;n=1; while((*p1)!='\0')//判断匹配 { p2=b;q2=p1; stage=1; while(*p2!='\0') { if(*p2!=*q2) { stage=0; break; } p2++;q2++; } if(stage==1) { q1=q2;//找到a中与b匹配的最后一个字符的下一个址 break; } p1++; n++;//找到与b匹配的第一个字符的位置 } p1=a; for(i=0;i<n-1;i++)//匹配的第一个字符的位置的赋给d { d[i]=*p1; p1++; } for(i=i;*p3!='\0';i++)//把c连在d后面 { d[i]=*p3; p3++; } for(i=i;*q1!='\0';i++)//把a中与b匹配的最后一个字符之后的连在新d之后 { d[i]=*q1; q1++; } d[i]='\0';//给d字符串一个末尾(结束符'\0') printf("%s\n",d); return 0; }