2 ji1812062521 ji1812062521 于 2016.02.20 23:56 提问

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

任意输入两个字符串(如"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';

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.21 00:17
 #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;
}
caozhy
caozhy   Ds   Rxr 2016.02.21 00:17

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

caozhy
caozhy 回复ji1812062521: 没有啊b[m] = '\0';这个你写了吧,
接近 2 年之前 回复
ji1812062521
ji1812062521 你先输入长字符串,再输入短字符串〒_〒为什么结果会输出莫名其妙的东西
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!