使用 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 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告