bonkun   12일 전

질문들과 구글링 도움을 받아 맞혔습니다로 나오긴 했습니다.

만, char *input=new char[100]; 이게 제일 맘에 안듭니다.

문제는 분명히 "길이가 N인 단어가 주어진다."라고 되어 있기 때문에 제한을 두면 안되는게 맞는 것 같습니다.

그런데 제가 미리 할당하지 않으면 어떻게 해야 하는지를 몰라서 우선은 100으로 넣었는데요.

그냥 포인터 말고 쓰면 char input[]={}; 이런식으로 하면 처음에 지정안해도 되는 것은 아는데

포인터를 쓰고 뒤에 new char를 쓰니 모르겠네요.

혹시 그냥 처음에 지정안하고 N개를 받게 하는 방법이 있는지요?

wjdclgns12   12일 전

" 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. "

bonkun   12일 전

아 그 문장이 있긴 하군요.

그래도 처음에 지정안하는 방법이 있는지요?

문제가 만약에 몇글자가 입력될지는 모른다.라고 하면...

cubelover   12일 전

C++을 사용하신다면 std::string을 사용하세요.

bonkun   12일 전

string을 쓰는게 편하긴 한가보네요.

그런데 포인터 배열은 무조건 크기 지정해야 하나보네요.

char input[]={}; 이런식으로 지정안하는 방법을 알고 싶었는데

cubelover   11일 전

그건 메모리 할당할 때 크기를 명시적으로 지정해줘야 해서 그렇습니다. 자세한 것은 시스템쪽을 공부하면 왜 그렇게 만들었는지 알 수 있는데 요약하기는 힘들어서 더 궁금하시면 공부해보세요.

n이 주어질 경우에는 n을 입력받고 new char[n]을 사용할 수 있고 주어지지 않는 경우에는 std::string과 같은 가변 길이의 컨테이너를 사용하는 게 가장 나아 보이네요.

댓글을 작성하려면 로그인해야 합니다.