我剛剛完成了一個反轉給定字符串的程序。現在,字符串必須長度爲11,但這可以很容易地更改,我想要的是您的意見。關於反轉字符串的程序的意見
請注意,我是一個彙編程序員,所以這就是爲什麼我不習慣「使用標準庫」,而是使用「暴力」的東西。
#include <iostream>
#include <string>
using namespace std;
char* reverse(char* input, int start_pos, int end_pos) {
char *output = new char[11];
for (int i = start_pos; i <= end_pos; i++)
output[end_pos - i] = input[i];
return output;
}
int main() {
char ali[11];
char b[11];
cout << "please enter your string" << endl;
cin.getline(ali, 20);
int spaces[4];
spaces[0]=0;
int c=1;
for (int y = 0; y < 11; y++)
if (ali[y] == ' ') {
spaces[c] = y;
c++;
}
c--;
for (int u = 0; u < 11 - 1 - spaces[c]; u++) {
b[u] = ali[spaces[c] + 1 + u];
cout << b[u];
}
b[11 - 1 - spaces[c]] = ' ';
cout << b[11 - 1 - spaces[c]];
for (int u = 0 + 11 - spaces[c], dd = 0; u < 11 - 1 - spaces[c - 1], dd < spaces[c]-spaces[c-1]; u++, dd++) {
b[u] = ali[spaces[c - 1] + 1 + dd];
cout << b[u];
}
b[11 - spaces[c - 2]] = ' ';
cout << b[11 - spaces[c - 2]];
for (int u = 0 + 11 - spaces[c - 1], dd = 0; u < 11 - 1 - spaces[c - 2], dd < spaces[c - 1] - spaces[c - 2]; u++, dd++) {
b[u] = ali[spaces[c - 2] + dd];
cout << b[u];
}
cout<<endl;
system("pause");
return 0;
}
我不明白什麼是錯的?我是否應該僅在問題中提出意見? – ali8
是的,答案是回答,而不是解釋你忘記解釋的問題。編輯您的原始問題。 – adripanico
問題是您的代碼已完全取消註釋。我們怎麼樣(我們的意思是整個StackOverflow社區)應該知道代碼的每個部分是幹什麼的? – Jules