Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 문자열 개념으로 모음, 숫자, 공백, 자음 개수 세는 프로그램

문자들의 배열 또는 문자의 집합을 문자열(string)이라고 합니다. C 언어에서 문자열은 널 문자('\0')로 끝나는 문자 배열로 표현됩니다.

문자열 선언

문자열은 다음과 같은 형식으로 선언합니다.

char stringname [size];

예를 들어 char a[50];은 최대 길이 50자를 저장할 수 있는 문자열을 의미합니다.

문자열 초기화

문자열을 초기화하는 방법은 크게 두 가지가 있습니다.

  • 단일 문자 상수를 이용한 초기화 −
char a[10] = { 'H', 'e', 'l', 'l', 'o', '\0' };
  • 문자열 상수를 이용한 초기화 −
char a[10] = "Hello";

문자열 접근

문자열을 입출력할 때는 제어 문자열 %s를 사용하며, 널 문자('\0')를 만날 때까지 문자열을 처리합니다.

모음 개수 세기 로직

입력된 문자가 모음(a, e, i, o, u)인지 검사하여 카운트를 증가시킵니다.

if(string[i]=='a'||string[i]=='e'||string[i]=='i'||
    string[i]=='o'||string[i]=='u') // 해당 문자가 모음인지 검사
    vowel=vowel+1;

숫자 개수 세기 로직

입력된 문자가 숫자('0'~'9')인지 검사하여 카운트를 증가시킵니다.

if(string[i]=='0'||string[i]=='1'||string[i]=='2'||
string[i]=='3'||string[i]=='4'||string[i]=='5'||
string[i]=='6'||string[i]=='7'||string[i]=='8'||string[i]=='9')
digit=digit+1;

공백 개수 세기 로직

입력된 문자가 공백(' ')인지 검사하여 카운트를 증가시킵니다.

if(string[i]==' ')
space=space+1;

위 조건 어디에도 해당하지 않는 나머지 문자는 모두 자음으로 간주하여 카운트합니다.

전체 프로그램

다음은 C 언어의 문자열 개념을 활용하여 모음, 숫자, 공백, 자음의 개수를 세는 프로그램입니다.

#include<stdio.h>
int main(){
    char string[50];
    int i,vowel=0,digit=0,space=0,consonant=0;
    printf("enter any string includes all types of characters:\n");
    gets(string);
    for(i=0;string[i]!='\0';i++){
        if(string[i]=='a'||string[i]=='e'||string[i]=='i'||
           string[i]=='o'||string[i]=='u') // 모음 검사
            vowel=vowel+1;
        else if(string[i]=='0'||string[i]=='1'||string[i]=='2'||
            string[i]=='3'||string[i]=='4'||string[i]=='5'||
            string[i]=='6'||string[i]=='7'||string[i]=='8'||string[i]=='9')
            digit=digit+1;
        else if(string[i]==' ')
            space=space+1;
        else
            consonant=consonant+1;
    }
    printf("vowel=%d\ndigit=%d\nspace=%d\nconsonant=%d\n",vowel,digit,space,consonant);
    return 0;
}

참고: gets() 함수는 버퍼 오버플로 위험으로 인해 C11 표준에서 제거되었으므로, 실제 개발 환경에서는 안전성이 보장되는 fgets() 함수를 사용하는 것이 좋습니다.

실행 결과

프로그램을 실행하면 다음과 같은 결과를 확인할 수 있습니다.

enter any string includes all types of characters:
Tutorials Point 1234 C programming 2020
vowel=9
digit=8
space=5
consonant=17

실행 결과를 보면 입력된 문자열에서 모음 9개, 숫자 8개, 공백 5개, 자음 17개가 정상적으로 계산된 것을 알 수 있습니다.