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

C++로 구현하기: ASCII 값이 정수 k보다 작거나 크거나 같은 알파벳 개수 세기

임의의 길이를 가진 문자열이 주어졌을 때, 문자열을 구성하는 알파벳 중 ASCII 값이 주어진 정수 k보다 작은 문자와 크거나 같은 문자의 개수를 각각 계산하는 것이 이번 문제의 목표입니다.

대문자 A~Z의 ASCII 값

ABCDEFGHIJKLM
65666768697071727374757677
NOPQRSTUVWXYZ
78798081828384858687888990

소문자 a~z의 ASCII 값

abcdefghijklm
979899100101102103104105106107108109
nopqrstuvwxyz
110111112113114115116117118119120121122

입력 및 출력 예시

입력 − str = "TuTorials PoinT", int k = 100

출력

  • ASCII 값이 k보다 작은 알파벳의 개수 − 6
  • ASCII 값이 k보다 크거나 같은 알파벳의 개수 − 9

설명

k가 100으로 주어졌으므로 문자열에 포함된 각 문자의 ASCII 값을 확인합니다. T는 84 < 100, u는 117 > 100, o는 111 > 100, r은 114 > 100, i는 105 > 100, a는 97 < 100, l은 108 > 100, s는 115 > 100, P는 80 < 100, n은 110 > 100입니다. 따라서 ASCII 값이 k보다 작은 알파벳은 총 6개이고, k보다 크거나 같은 알파벳은 총 9개입니다.

입력 − str = "HellO All", int k = 90

출력

  • ASCII 값이 k보다 작은 알파벳의 개수 − 3
  • ASCII 값이 k보다 크거나 같은 알파벳의 개수 − 5

설명

k가 90으로 주어졌으므로 문자열에 포함된 각 문자의 ASCII 값을 확인합니다. H는 72 < 90, e는 101 > 90, l은 108 > 90, l은 108 > 90, O는 79 < 90, A는 65 < 90, l은 108 > 90, l은 108 > 90입니다. 따라서 ASCII 값이 k보다 작은 알파벳은 총 3개이고, k보다 크거나 같은 알파벳은 총 5개입니다.

프로그램에서 사용된 접근 방식

  • 대문자와 소문자로 이루어진 문자열과 정수 k를 입력받습니다.
  • str.length() 함수를 사용해 문자열의 길이를 계산하고, 이후 처리를 위해 함수에 전달합니다.
  • k보다 작은 값의 개수를 저장할 임시 변수 count를 선언하고 0으로 초기화합니다.
  • i를 0부터 문자열 길이까지 반복하는 FOR 루프를 시작합니다.
  • 루프 안에서 조건문 IF를 통해 str[i] < k인지 검사하고, 참이라면 count를 1 증가시킵니다.
  • k보다 작은 값의 개수(count)를 반환합니다.
  • k보다 크거나 같은 값의 개수는 int greater = len - Less_than(str, k, len); 처럼 전체 길이에서 뺀 값으로 계산합니다.
  • 결과를 출력합니다.

예제 코드

#include <bits/stdc++.h>
using namespace std;
//ASCII 값이 k보다 작거나 크거나 같은 알파벳의 개수 세기
int Less_than(string str, int k, int length){
    int count = 0;
    for (int i = 0; i < length; i++){
        if (str[i] < k){
            count++;
        }
    }
    return count;
}
int main(){
    string str = "TuTorials PoinT";
    int k = 100;
    int len = str.length();
    cout<<"Count of alphabets having ASCII value less than k are: "<<Less_than(str,k, len);
    int greater = len - Less_than(str,k, len);
    cout<<"\nCount of alphabets having ASCII value equals or greater than k are: "<<greater;
    return 0;
}

실행 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다 −

Count of alphabets having ASCII value less than k are: 6
Count of alphabets having ASCII value equals or greater than k are: 9