어떤 문자로 구성된 문자열 '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'로 표시됩니다.