如何在 C++ 中反转字符串?

问题描述 投票:0回答:1

这是我的问题。我的任务是编写函数 void:

void process(char input[], char output[]){

}

给定的:

int main(){
    const int MAX_SIZE = 100;
    char input[] = "this is a beautiful day" ;
    char output[MAX_SIZE];
    process(input, output);
    cout << output;
    return 0;
}

注:对于这道题,我只能用 and

这是我的作品:

void process(char input[], char output[]){
    int n = strlen(input);
    for (int i = 0; i > n; i++){
        output[i] = input[i];
        input[i] = input[n - i + 1];
        input[n - i + 1] = output[i];
    }
}

但是没用。我该如何解决?

c++ string reverse
1个回答
0
投票

您的代码存在逻辑错误。

for (int i = 0; i > n; i++){
        output[i] = input[i];
        input[i] = input[n - i + 1];
        input[n - i + 1] = output[i];

在你的循环语句中,你已经初始化了 i=0 并给出了条件 i>n。这将导致循环语句不执行。

其次,我进一步简化了您的代码,它应该提供所需的输入。

for (int i = 0; i<=n; i++){
        output[i] = input[n - i];  //1
        cout<<output[i];
    }

本质上,一个字符串是一个字符数组,为了简化,因为数组输出中的索引从 0 运行到 n,同时,数组输入索引从 n 到 0 被访问,在 //1 行.

如前所述,由于字符串是字符数组,因此在同一个循环中,我将显示输出字符串中的每个元素。提供答案。

我的测试用例是:这是一个测试 输出:tset a si sihT

希望这有帮助!如果您需要任何进一步的解释,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.