Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++를 사용하여 주어진 문자열에서 대문자 감지

<시간/>

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