自定义的函数调用了但没有执行

自定义了字符串的连接函数,但调用了没有运行,但是也没有报错

#include<stdio.h>
char *p,*a;
void stract(char *x,char *y){
        int i,j;
        i=j=0;
        while(p[i]!='\0')
            i++;
        while(a[j]!='\0')
            p[i++]=a[j++];
}

int main()
{
    void stract(char *x,char *y);
    char str1[100],str2[100];
    p=str1;
    a=str2;
    printf("enter a string of characters:");
    gets(p);
    printf("enter a string of characters:");
    gets(a);
    p=str1;
    a=str2;
    strcat(p, a);
    printf("%s",p);
    return 0;
}

 

你可能没有传字符串的地址过去,函数中的局部变量自己运行了一遍

代码贴出来看看吧,不然没法确定。

很可能是你在传参数的时候用的不是地址,导致运行后的结果没有返回。

还一种可能是,在拼接字符串的时候开始的位置不对,两个字符串中间有'\0'字符的话也得不到想要的结果。

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632