使用指针实现对两个字符串的连接。要求输入输出在主函数中完成,并从键盘输入字符串,连接操作在子函数中。

问题是:使用指针实现对两个字符串的连接。要求输入输出在主函数中完成,并从键盘输入字符串,连接操作在子函数中。
请问我的代码哪里错了?

#include <stdio.h>
void connect(char str1[],char str2[],char *p)
{
    for(;*str1!='\0';)
    {
        *p=*str1;
        str1++;
        p++;
    }
    for(;*str2!='0';)
    {
        *p=*str2;
        str2++;
        p++;
    }
    *p='\0';
}
int main()
{
    char strings[100],str1[100],str2[100];
    char *p;
    int i=0;
    p=strings;
    printf("第一个字符串是:");
    scanf("%s",str1);
    printf("第二个字符串是:");
    scanf("%s",str2);
    connect(str1,str2,p);
    printf("连接后的字符串是:%s\n",p);
}

img

没问题啊,我跑的很正常。