키보드로 입력한 영어 문장 속의 단어(스페이스나 피리오드로 구분된 말의 덩어리) 수를 세는 프로그램입니다. 스페이스가 여러 개 연속적으로 존재할 경우도 고려해야 하며, [Enter]키만 입력하면 프로그램이 종료되도록 작성합니다.
#include <stdio.h>
{
char c = '\0'; /* 키보드에서 입력한 한 글자 */
char firstletter; /* 맨 처음 글자를 담아둡니다 */
int wordnum; /* 단어의 문자 수 */
int word_in; /* 단어에 들어가면 true */
while(1) /* 처리를 단순화하기 위해, 일부러 무한 루프를 만듬 */
{
wordnum = 0;
word_in = 1;
firstletter = '\0';
printf("문자열을 입력하세요 : ");
while(1)
{
c = getchar(); /* [Enter] 키를 누르면, */
if(c == '\n') { /* 안쪽 루프를 빠져나옴 */
if(word_in) /* (단어가 끝이 아니었다면 */
wordnum++ ; /* 단어 수에 추가함 */
break;
}
firstletter = c; /* 단어의 바로 다음 문자가 */
if(c == ' ' || c == '.') { /* 구분문자라면, */
if(word_in) /* 단어의 개수를 */
{ /* 카운트함 */
wordnum++ ;
word_in = 0;
}
}
else
word_in = 1;
}
if(firstletter == '\0') /* 아무것도 입력하지 않으면 */
break; /* 바깥 루프를 빠져나옴 */
printf("단어 수 : %d\n", wordnum);
}
}
'IT 자격증 > 코딩능력마스터 및 C언어' 카테고리의 다른 글
[C/C++ 동영상 강좌] 제31강 구조체와 공용체 - 2 (0) | 2009.09.04 |
---|---|
[C/C++ 동영상 강좌] 제30강 구조체와 공용체 - 1 (0) | 2009.08.30 |
[C/C++ 동영상 강좌] 제29강 기억클래스와 선행처리기 (0) | 2009.08.24 |
[C/C++ 동영상 강좌] 제28강 함수 만들기 - 3 (0) | 2009.08.17 |
[C/C++ 동영상 강좌] 제27강 함수 만들기 - 2 (0) | 2009.08.06 |