C ++로 Hangman을 만들어야하는 새로운 수업 과제가 있습니다. 모든 것을 설정했지만 사용자가 이미 입력 한 문자열에서 배열을 만드는 방법을 알아낼 수 없습니다. 여기 내가 얻은 것입니다.
#include <iostream>
using namespace std;
int main(){
string stringToGuess;
cout << "Hello user, please enter a word to play hangman" << endl;
cin >> stringToGuess;
int arrLength = stringToGuess.length();
cout << arrLength << endl;
char arr_To_Guess[arrLength] = {atoi(stringToGuess.c_str())};
for (int i = 0; i < arrLength; i++){
cout << arr_To_Guess << " ";
}
}
문자열에서 배열을 만들지 않고도이 작업을 수행 할 수 있지만 할당에서 수행해야한다는 것을 알고 있습니다. . 선생님의 지시 사항 :이 작업은 한 번에 한 단계 씩 수행합니다. 첫 번째 단계는 다음과 같습니다. 사용자에게 단어를 입력하고 stringToGuess라는 문자열에 저장합니다. 그런 다음 arrToGuess, arrCurrGuess라는 문자 배열 2 개를 만듭니다. 첫 번째 배열에는 사용자가 입력 한 단어의 모든 문자가 포함되고 두 번째는 배열에는 지금까지 플레이어가 올바르게 추측 한 모든 문자가 포함됩니다. 사용자가 프로그래밍이라는 단어를 입력하는 경우 변수 값은 다음과 같습니다. stringToGuess : "PROGRAMMING"arrToGuess : [P, R, O, G, R, A, M, M, I, N, G] arrCurGuess : [_, _, _, _, _, _, _, _, _, _, _] 당신의 임무는이 일을하는 것입니다. 이 프로그램을 먼저보세요 : https://repl.it/IZQd/0 주의해야 할 사항 : 1) 모든 문자를 대문자로 만드십시오.
배열의 길이는 컴파일시 알 수 없으므로 자동 배열을 사용할 수 없습니다. 배열은 동적으로 할당되어야합니다. 문자열을 배열에 복사하는 가장 간단한 해결책은 std::vector
.
그러나 문자열에서 배열을 생성하려는 욕구는 근거가 없다고 생각합니다. 당신은 아마 그것을 할 필요가 없습니다. 다음과 같이 루프를 다시 작성할 수 있습니다.
cin >> stringToGuess;
for (char c : stringToGuess) {
cout << c << " ";
}
char arr_To_Guess[arrLength]
앞서 언급 한 문제 arrLength
는 컴파일 타임에 알려지지 않았으므로이 선언은 형식이 잘못되었습니다.
= {atoi(stringToGuess.c_str())};
이것은 매우 이상합니다. 문자열이 나타내는 숫자 값을 갖도록 새 배열의 첫 번째 문자를 초기화하려고합니다. 예를 들면 :
string: "123"
becomes: [123, 0, 0]
나는 이것이 당신이 의도 한 것이 아닌 것 같습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다