关于转换为自定义函数的问题

以下问题在DEVC++中编译
希望输出根据字母排序最小的字符串

#include
#include
using namespace std;
int main()
{
    char a[10]="English"; 
    char b[10]="China";
    char c[10]="USA";
    char min1[10];
    int i=0,s1=0,s2=0,s3=0,s;
    while (a[i] != '\0' )
    {
        s1+=1;
        i+=1;
    }
    i=0;
    while (b[i] != '\0' )
    {
        s2+=1;
        i+=1;
    }
    i=0;while (c[i] != '\0' )
    {
        s3+=1;
        i+=1;
    }
    if ((strcmp(a,b))<1) 
    {
        strcpy(min1,a); 
        s = s1;
    }
    else
    {
        strcpy(min1,b);
        s = s2;
    }
    if ((strcmp(a,c))<1) 
    {
        strcpy(min1,a); 
        s = s1;
    }
    else
    {
        strcpy(min1,c);
        s = s3;
    } 
    if ((strcmp(b,c))<1)
    {
        strcpy(min1,b);
        s = s2;
    } 
    else 
    {
        strcpy(min1,c);
        s = s3;
    }
    for (int i=0;ireturn 0;
}

若利用函数来编写这个程序(未讲计数写入)

#include
#include
using namespace std;
int main()
{
    char min(const char a[],const char b[],const char c[]);
    const char a[10]="English"; 
    const char b[10]="China";
    const char c[10]="USA";
    char min1[10];
    strcpy(min1[10],(min(a[10],b[10],c[10])));
    for (int i=0;i<10;i++)
    {
        cout<return 0;
}
char min(const char a[],const char b[],const char c[])
{
    int x[10];
    if ((strcmp(a,b))<1) strcpy(min,a); else strcpy(min,b);
    if ((strcmp(a,c))<1) strcpy(min,a); else strcpy(min,c);
    if ((strcmp(b,c))<1) strcpy(min,b); else strcpy(min,c);
    return x[10];
}

则会出现以下等一系列报错

C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    In function 'int main()':
11    27    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Error] invalid conversion from 'char' to 'const char*' [-fpermissive]
6    7    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Note] initializing argument 1 of 'char min(const char*, const char*, const char*)'
11    33    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Error] invalid conversion from 'char' to 'const char*' [-fpermissive]
6    7    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Note] initializing argument 2 of 'char min(const char*, const char*, const char*)'
11    39    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Error] invalid conversion from 'char' to 'const char*' [-fpermissive]
6    7    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Note] initializing argument 3 of 'char min(const char*, const char*, const char*)'
11    16    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Error] invalid conversion from 'char' to 'char*' [-fpermissive]
2    0    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    In file included from C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp
51    18    C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include\string.h    [Note] initializing argument 1 of 'char* strcpy(char*, const char*)'
11    40    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Error] invalid conversion from 'char' to 'const char*' [-fpermissive]
2    0    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    In file included from C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp
51    18    C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include\string.h    [Note] initializing argument 2 of 'char* strcpy(char*, const char*)'
C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    In function 'char min(const char*, const char*, const char*)':
21    35    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Error] cannot resolve overloaded function 'min' based on conversion to type 'char*'
21    55    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Error] cannot resolve overloaded function 'min' based on conversion to type 'char*'
22    35    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Error] cannot resolve overloaded function 'min' based on conversion to type 'char*'
22    55    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Error] cannot resolve overloaded function 'min' based on conversion to type 'char*'
23    35    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Error] cannot resolve overloaded function 'min' based on conversion to type 'char*'
23    55    C:\Users\Administrator\Desktop\C++\第5章\013-最小字母排序.cpp    [Error] cannot resolve overloaded function 'min' based on conversion to type 'char*'

求解程序应该如何修改

img

参考如下:

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
    char* min(const char a[],const char b[],const char c[]);
    const char a[10]="English"; 
    const char b[10]="China";
    const char c[10]="USA";
    char min1[10];
    strcpy(min1,(min(a,b,c)));

    for (int i=0; min1[i] != '\0';i++)
    {
        cout<<min1[i];
    }
    return 0;
}
char* min(const char a[],const char b[],const char c[])
{
    char min[10];
    if ((strcmp(a,b))<1) strcpy(min,a); else strcpy(min,b);
    if ((strcmp(a,c))<1) strcpy(min,a); else strcpy(min,c);
    if ((strcmp(b,c))<1) strcpy(min,b); else strcpy(min,c);

    char * temp = min;
    return temp;
}