我想做一個C風格的字符串副本,但有些東西不能正常工作。我究竟做錯了什麼?基本的C風格的字符串副本
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main() {
char string_a[20]="Good day!";
char string_b[30]="Hi!";
int i=0;
cout << "string a: " << string_a << endl;
cout << "string b: " << string_b << endl;
while (*string_a++ = *string_b++) {
cout << ++i << endl;
}
cout << "string a: " << string_a << endl;
cout << "string b: " << string_b << endl;
return 0;
}
這將是更好的詞和詞組在您的問題的身體,而不是你的「解決方法」。 –
也許標題本身就足以解決這個問題...但是,不是堆棧溢出。你至少可以提到_why_它失敗了。 –
兩個問題。你已經將'string_a'和'string_b'聲明爲數組,而不是指針。因此,它們的地址是不可變的,所以'string_a ++'和'string_b ++'應該會產生錯誤。另外,最好寫'while((x = y)!='\ 0')'以清楚地表明你正在複製結果並將其與空字符進行比較。一般來說,一個'='作爲'if'或'while'條件是一個紅旗。 –