85.又见字符串的问题
1.给出一个函数来复制两个字符串 A 和 B。字符串 A 的后几个字节和字符串 B 的前几个字
节重叠。分析:记住,这种题目往往就是考你对边界的考虑情况。
/* 85.又见字符串的问题 1.给出一个函数来复制两个字符串A和 B。字符串A的后几个字节和字符串B的前几个字 节重叠。分析:记住,这种题目往往就是考你对边界的考虑情况。 */ #include<iostream> #include<stdio.h> #include<string.h> using namespace std; #define N 101 void myStrcpy(char a[],char b[]) { char c[N]; int len,len2,i,j,k,f; len=strlen(a); f=0; for(i=0;i<len;i++)//遍历a 开始查找当前i位置到结束是否是b的前缀 { k=i;j=0; while(a[k]==b[j]) { k++;j++; if(k==len) { f=1; break; } } if(f==1) break; } len2=strlen(b); for(k=0;k<i;k++)//从i开始 与b前面相同 c[k]=a[k]; for(j=0;j<len2;k++,j++) c[k]=b[j]; for(i=0;i<k;i++) printf("%c",c[i]); printf("\n"); } int main() { char a[]={"12345678"}; char b[]={"56789322"}; printf("串1:%s 串2:%s\n",a,b); printf("合并后的串为:"); myStrcpy(a,b); char c[]={"fgaercxore"}; char d[]={"ekkkkkkkfff"}; printf("串1:%s 串2:%s\n",c,d); printf("合并后的串为:"); myStrcpy(c,d); return 0; }