어떤 문자로 구성된 문자열 'str'이 있다고 가정해 보겠습니다. 작업은 주어진 문자열의 모든 문자가 대문자인지 여부를 확인하고 각각 True 또는 False를 반환하는 것입니다. 예를 들어,
입력-1 -
str = “INDIA”
출력 -
True
설명 − 입력 문자열의 모든 문자가 대문자이므로 이 경우 true를 반환합니다.
입력-2 -
str = “Programmer”
출력 -
False
설명 − 입력 문자열의 첫 글자를 제외한 모든 문자가 대문자가 아니므로 이 경우 false를 반환합니다.
이 문제를 해결하기 위해 사용된 접근 방식
주어진 문자열에서 입력 문자열의 모든 문자가 대문자인지 여부를 확인해야 합니다. 따라서 문자열의 각 문자를 반복하고 'A'보다 크고 'Z'보다 작은지 확인합니다.
조건이 참이면 카운터를 늘립니다. 그런 다음 계속 진행하여 카운터의 크기가 문자열의 길이와 동일한지 확인한 다음 true를 반환하고 그렇지 않으면 false를 반환합니다.
-
문자열 'str' 입력 받기
-
부울 함수 checkCapital(string s)은 문자열을 입력으로 사용하고 문자열의 모든 문자가 대문자이면 true를 반환합니다.
-
카운터 변수를 가져와 0으로 초기화합니다.
-
문자열을 반복하고 조건이 참이면 현재 문자가 'A'에서 'Z' 범위에 속하는지 확인한 다음 카운터 변수를 증가시킵니다.
-
이제 체크 카운터는 문자열의 크기와 같으며 그에 따라 True/False를 반환합니다.
-
카운터가 0이거나 문자열에 대문자인 한 문자가 있으면 true를 반환합니다.
예시
#include<bits/stdc++.h> using namespace std; bool checkCapital(string s){ int counter=0; int loc=i; for(int i=0;i<s.size();i++){ if(s[i]>='A' && s[i]<= 'Z'){ counter++; loc=i; } } if(counter==s.size() || counter==0 ||(counter==1 && loc==0)) return true; return false; } int main(){ string str= "INDIA"; bool ans= checkCapital(str); if(ans){ cout<<"True"<<endl; } else { cout<<"False"<<endl; } return 0; }
출력
위의 코드를 실행하면 다음과 같이 출력이 생성됩니다.
True
입력 문자열 'INDIA'에는 모든 문자가 대문자로 포함되어 있으므로 출력은 'True'로 표시됩니다.