这是我的问题。我的任务是编写函数 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];
}
}
但是没用。我该如何解决?
您的代码存在逻辑错误。
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
希望这有帮助!如果您需要任何进一步的解释,请告诉我。