使用 C++ 檢測給定字串中的大寫字母


假設我們有一個字串“str”,其中包含一些字元。任務是檢查給定字串的所有字元是否都大寫,並分別返回 True 或 False。例如,

輸入-1

str = “INDIA”

輸出

True

解釋 − 由於輸入字串的所有字元都大寫,因此在這種情況下我們將返回 true。

輸入-2

str = “Programmer”

輸出

False

解釋 − 由於輸入字串的所有字元除了第一個字母之外都不是大寫,因此在這種情況下我們將返回 false。

解決此問題的方法

在給定的字串中,我們必須檢查輸入字串的所有字元是否都大寫。因此,我們將遍歷字串的每個字元,並檢查它是否大於“A”且小於“Z”。

如果條件為真,則我們將增加計數器。然後,我們將繼續前進並再次檢查計數器的大小是否與字串的長度相同,如果是,則返回 true,否則返回 false。

  • 輸入字串“str”

  • 布林函式 checkCapital(string s) 以字串作為輸入,如果字串的所有字元都大寫,則返回 true。

  • 獲取一個計數器變數並將其初始化為零。

  • 遍歷字串並檢查當前字元是否在“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”。

更新於: 2021年2月5日

487 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.