C++小程序,调试,在我这个基础上调试

任意输入两个字符串(如"Jiangsu China"和"hello!")
并存放在a、b两个数组中。把较短的字符串放在a数组,
较长的字符串放在b数组,并输出。#include
using namespace std;
void swap(char a[], char b[], int n) {
char ch; char k=0;
for (int k = 0; k < n; k++)
ch = a[k]; a[k] = b[k]; b[k] = ch;
}
int main(void)
{
char a[100], b[100];
cin >> a >> b;
cout << "a=" << a << ",b=" << b << '\n';
int c = strlen(a), d = strlen(b);
if (c > d) swap(a, b, d);
cout << "a=" << a << ",b=" << b << '\n';

 #include<iostream>
using namespace std; 
void swap(char a[], char b[], int n, int m) {

    char ch; int k;
    for (k = 0; k < m; k++) //这里少括号,并且复制不全
    {
        ch = a[k]; a[k] = b[k]; b[k] = ch;
    }
    b[m] = '\0';
}
int main(void)
{
    char a[100], b[100];
    cin >> a >> b;
    cout << "a=" << a << ",b=" << b << '\n';
    int c = strlen(a), d = strlen(b);
    if (c > d) swap(a, b, d, c);
    cout << "a=" << a << ",b=" << b << '\n';
    return 0;
}

123
abcdef
a=123,b=abcdef
a=123,b=abcdef
Press any key to continue

abcdef
123
a=abcdef,b=123
a=123,b=abcdef
Press any key to continue