在数组C ++中反转和切换值

时间:2016-02-29 11:22:24

标签: c++ arrays

有人可以帮我解决如何以相反的顺序交换数组A [10]和数组B [10]中的值。到目前为止,这是我的代码,如果所需的值是数字,那么我的代码是什么?不是字母?

#include <iostream>
#include <iomanip>

using namespace std;
using std::setw;

void REVERSE(char *);

int A, B;

int main()
{

    cout << "word in A: " << endl;
    cin >> char A[];

    cout << "word in B: " << endl;
    cin >> char B[];


    REVERSE(A);
    REVERSE(B);

    return 0;
}

void REVERSE (char *A)
{

    int counter = 0;
    while(A[counter] != '\0')
        counter++;

    for(int i=counter-1;i>=0;i--)
        cout<<A[i];
    cout<<endl;
};


if(A>B)
{
    temp = A;
    A = B;
    B = temp;
}   

3 个答案:

答案 0 :(得分:1)

std::string stringA(A);
std::string stringB(B);

std::reverse(stringA.begin(), stringA.end());
std::reverse(stringB.begin(), stringB.end());

std :: reverse - Reverse

答案 1 :(得分:1)

/json

//希望这会有所帮助!!如果我已正确理解您的问题,请继续提供帮助。

答案 2 :(得分:1)

您的代码有几个问题。

您将AB声明为整数值。然而,您(可能)尝试将它们作为char[](字符数组)读取。除了这一行cin >> char[] A应该给你一个编译器错误这个事实,这甚至没有成功。您不能将字符值存储在整数内。

如果您尝试读取字符串或字符数组,请将AB声明为一个。

代码末尾的尾随if语句也会让你的编译器抱怨。 C ++不是脚本语言。如果声明不在函数内部,则不会执行语句。

我认为您尝试采用以下计划:

#include <iostream>
#include <algorithm> // include algorithm to use std::reverse

using namespace std;

int main()
{
    string A, B;  // declare A and B to be a string, there is no need to declare them at global scope

    cout << "word in A: ";
    cin >> A;
    cout << "word in B: ";
    cin >> B;

    reverse(A.begin(), A.end()); // reverses A
    reverse(B.begin(), B.end()); // reverses B

    cout << A << " " << B << endl; // prompt A and B
} 

如果要读取整数并将其转换为字符串以将其反转,请尝试以下操作:

#include <iostream>
#include <algorithm> // include algorithm to use std::reverse

using namespace std;

int main()
{
    int A, B;  // declare A and B to be a int

    cout << "word in A: ";
    cin >> A;
    cout << "word in B: ";
    cin >> B;

    string strA(to_string(A)); // convert A into a string
    string strB(to_string(B)); // convert B into a string

    reverse(strA.begin(), strA.end()); // reverses string version of A
    reverse(strB.begin(), strB.end()); // reverses string version of B

    cout << strA << " " << strB << endl; // prompt strA and strB
} 

注意:要使用to_string(),您需要使用c ++ 11标准