C语言主函数不调用自己写的函数直接出结果了


#include<stdio.h>

void link(char a[50], char b[50]);

int main()
{
    char c[50], d[50];
    printf("请输入想要连接的两个字符串\n");
    
    void link(char, char);

    printf("结果为%ch\n", c[50]);
    return 0;
};

void link(char a[50], char b[50]) {
    scanf("%ch", &a[50]);
    scanf("%ch", &b[50]);
    int i,n,m;
    int j = 0;
    n=sizeof(a[50]);
    m=sizeof(b[50]);
    for (i = n; j < m; i++,j++) {
        a[i] = b[j];
    }
    return;
}

代码如上,是为了完成两个字符串的连接
img

首先把main中的void link(char, char)改为 link(c,d);你的写法是函数定义,不是函数调用,所以自然没有执行你的link函数了
另外函数写的也有问题
scanf("%ch", &a[50]);
scanf("%ch", &b[50]);
改为:
scanf("%s", a);
scanf("%s", b);

n=sizeof(a[50]);
m=sizeof(b[50]);
改为
n=strlen(a);
m=strlen(b);
并且文件头增加#include <string.h>

代码实现跟需求不符合,这个写的是拷贝功能