Menu



Manage

Study_C > 7-2.c Lines 54 | 2.2 KB
다운로드

                        /*****************************************************************

 * 영단어 분석 프로그램

 *  본 파일은 과제를 위해 작성함.

 * Ver. 1.0.0

 * 작성자 : 김시형

 * 최초 작성일자 : 2022년 10월 10일 월요일

 * 변경 이력 : 해당 사항 없음

 ********************************************************************/

#include <stdio.h>              // 표준 입출력을 위한 헤더 로드 (printf())
#include <ctype.h>              // 문자 검사를 위한 헤더 로드 (isalpha())

int word_counter(char* s);      // 문자 카운터 함수

int main()                      // 메인 함수
{
    printf("//////////////////////////////////////////////////////////////////\n////////////////////// 영단어의 계수(?)기 ////////////////////////\n//////////////////////////////////////////////////////////////////\n\n\n");

    int counter = 0;                                // 문자열 개수 변수 초기화
    char word[1000] = { 0 };                        // 문자열을 입력받을 배열
    printf("영문장을 입력하세요 : ");
    gets_s(word, 1000);                             // 입력한 문자열이 word배열에 저장됨
    puts(word);                                     // 입력한 문자열 확인을 위해 추가하였음
    counter = word_counter(word);                   // 문자열 개수 변수에 문자 카운터 함수 결과갑 입력
    printf("문자열의 개수 : %d", counter);          // 문자열의 개수 출력

    return 0;                                       // Return값 : 없음
}

int word_counter(char* s)                           // 문자 카운터 함수
{
    int i = 0, counting = 0, waiting = 1;           // i는 for문 돌릴값, counting은 문자 개수값 각각 초기화

    for (i = 0; s[i] != NULL; ++i)                  // 배열s로 입력된 즉 main 함수의 word의 각 문자 조사
        if (isalpha(s[i]))                          // 입력된 문자가 영문자인지 확인
        {
            if (waiting)
            {
                counting++;                             // 영문자일 경우 counting값 증가
                waiting = 0;
            }
        }
        else
            waiting = 1;                            // 영문자가 아닐 경우 아무것도 하지 않음

    return counting;                                // counting값 반환
}