输入2个字符串分别存人两个一维字符数组,将其连接后存人第3个一维字符数组后输出。要求用指向一维字符数组的指针变量来处理其中的字符串。请用下列两种方法编写程序:使用系统函数中的字符串连接函数strcat()和不使用系统函数中的字符串连接函数strcat()。
输入2个字符串分别存人两个一维字符数组,将其连接后存人第3个一维字符数组后输出。要求用指向一维字符数组的指针变量来处理其中的字符串。请用下列两种方法编写程序:使用系统函数中的字符串连接函数strcat()和不使用系统函数中的字符串连接函数strcat()。
【正确答案】:方法一: 使用strcat() #include main() {char s1[81],s2[40],s3[81],*p1,*p2,*p3; printf("请输入字符串1:"); gets(s1); printf("请输入字符串2:"); gets(s2); p1=s1;p2=s2;p3=s3;/*三个指针分别指向三个数组*/ strcat(p1,p2); strcpy(p3,p1); printf("字符串3为:%s\n",s3); } 方法二: 不使用strcat() #include main() { char s1[81],s2[40],s3[81],*p1,*p2,*p3; int n; gets(s1); gets(s2); n=strlen(s1); p1=s1+n;p2=s2;p3=s3; while(p2)*pl++=*p2++; *p1='\0'; P1=s1; strcpy(p3,p1); puts(s3); }