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;
}
단어와 문구를 추가하는 것이 좋습니다 것입니다 당신의 "대안"대신 질문 본문을 사용하십시오. –
아마도이 제목만으로도이 문제를 해결할 수 있었지만 ... 스택 오버플로가 아닙니다. 적어도 실패했다고 언급 할 수 있습니다. –
두 가지 문제가 있습니다. 'string_a'와'string_b'을 포인터가 아니라 배열로 선언했습니다. 따라서 주소가 변경되지 않으므로'string_a ++'와'string_b ++'는 에러를 발생시킵니다. 또한, while ((x = y)! = '\ 0')'을 써서 결과를 복사하여 null 문자와 비교한다는 것을 명확히하는 것이 더 좋습니다. 일반적으로,'if' 또는'while' 조건으로 하나의'= '는 적색 플래그입니다. –