Computer >> Máy Tính >  >> Lập trình >> C ++

Phát hiện viết hoa trong một chuỗi nhất định bằng C ++

Giả sử chúng ta có một chuỗi ‘str’ bao gồm một số ký tự trong đó. Nhiệm vụ là kiểm tra xem chuỗi đã cho có viết hoa tất cả các ký tự hay không và trả về True hoặc False tương ứng. Ví dụ:

Đầu vào-1 -

str = “INDIA”

Đầu ra -

True

Giải thích - Vì tất cả các ký tự của chuỗi đầu vào là viết hoa, chúng tôi sẽ trả về true trong trường hợp này.

Đầu vào-2 -

str = “Programmer”

Đầu ra -

False

Giải thích - Vì tất cả các ký tự của chuỗi nhập không viết hoa ngoại trừ ký tự đầu tiên, chúng tôi sẽ trả về false trong trường hợp này.

Phương pháp được sử dụng để giải quyết vấn đề này

Trong chuỗi đã cho, chúng ta phải kiểm tra xem tất cả các ký tự của chuỗi đầu vào có được viết hoa hay không. Do đó, chúng tôi sẽ lặp lại từng ký tự của chuỗi và sẽ kiểm tra xem nó có lớn hơn ‘A’ và nhỏ hơn ‘Z’ hay không.

Nếu điều kiện là đúng, thì chúng tôi sẽ tăng bộ đếm. Sau đó, chúng ta sẽ tiếp tục và kiểm tra lại xem kích thước của bộ đếm có giống với độ dài của chuỗi hay không, rồi trả về true, nếu không thì trả về false.

  • Nhận đầu vào của một chuỗi ‘str’

  • Kiểm tra hàm BooleanCapital (string s) nhận một chuỗi làm đầu vào và trả về true nếu tất cả các ký tự của chuỗi được viết hoa.

  • Lấy một biến bộ đếm và khởi tạo nó bằng không.

  • Lặp lại chuỗi và kiểm tra xem ký tự hiện tại có nằm trong phạm vi từ ‘A’ đến ‘Z’ hay không nếu điều kiện là đúng, sau đó tăng biến bộ đếm.

  • Bây giờ bộ đếm kiểm tra giống như kích thước của chuỗi và trả về True / False tương ứng.

  • Nếu bộ đếm là 0 hoặc chuỗi có một ký tự viết hoa, thì trả về true.

Ví dụ

#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;
}

Đầu ra

Chạy đoạn mã trên sẽ tạo ra kết quả là,

True

Vì chuỗi đầu vào "INDIA" chứa tất cả các ký tự viết hoa, chúng tôi nhận được kết quả đầu ra là "True".