단어 세기 > 문제은행



실력키우기 문자열

1516 : 단어 세기

제한시간: 1000 ms    메모리제한: 32 MB
해결횟수: 1252 회    시도횟수: 3166 회   



임의의 문장을 입력받아 각 단어별로 나눈 후에 단어들의 중복되는 개수를 구하는 프로그램을 작성하시오.

 

<처리조건>
(1) 입력된 스트링은 글자의 제한은 없다. 즉 공백이나 ', ' 등도 입력으로 들어 올 수 있다.
(2) 입력된 문장에서 각 단어사이의 구분은 공백으로 한다.
(3) 단어에는 공백을 제외한 단어들만이 포함된다.


임의의 문장을 입력받는다.(문장의 길이는 200 이하)
하나의 결과가 나온 후에도 계속 새로운 입력을 받다가, "END"가 입력되면 프로그램을 종료한다.
(문장의 개수를 30을 넘지 않는다.)


각 단어들의 발생 빈도를 사전순으로 출력한다.

I AM DOG DOG DOG DOG A AM I
I AM OLYMPIAD JUNGOL JUNGOL OLYMPIAD
END
A : 1
AM : 2
DOG : 4
I : 2
AM : 1
I : 1
JUNGOL : 2
OLYMPIAD : 2


[ 행단위로 문자열을 입력받기]

1. gets함수를 이용하기 : 준비된 문자열 길이보다 입력되는 문자열이 더 긴 경우 다른 메모리 공간(무엇이 저장되어 있는지 알수 없는)을 침범할 수 있다. char str[210]; gets(str); 2. fgets함수를 이용하기 : char str[210]; fgets(str, 210, stdin); /// 문자열을 209개까지 입력받고 마지막에 '\0'문자을 넣어 준다. 단 '\n'이 함께 입력된다. /// 행바꿈 문자('\n')가 필요없는 경우(대부분의 경우가 그렇다.) 제거해 주어야 한다. 3. c++ 인 경우 getline함수와 char배열을 사용하기 : char str[210]; cin.getline(str, 210); /// 문자열을 209개까지 입력받고 마지막에 '\0'문자을 넣어 준다. '\n'이 입력되지 않는다. 4. c++ 인 경우 getline함수와 string 변수를 사용하기 : string str; getline(cin, str); /// 문자열 길이에 관계없이 입력받는다. '\n'이 입력되지 않는다.

[행단위로 입력받은 문자열을 단어로 분리하기]

여러가지 방법


자료의 표현, 문자열

HancomEducation E-mail : hancomc@hotmail.com, comkiwer@naver.com Tel : 070-7163-5782 FAX : 031-388-0996 정올소개 이용약관 개인정보처리방침
경기도 안양시 동안구 호계동 1065-10 협성골드프라자 601호, 경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호
Copyright@2010-2015 jungol. All right reserved.