使用isupper()函数编写C程序

问题

如何使用C编程识别字符串中大写字母的总数?

解决方案

我们用来计算句子中大写字母数的逻辑如下-

for(a=string[0];a!='\0';i++){
   a=string[i];
   if (isupper(a)){
      counter=counter+1;
      //counter++;
   }
}

例子1

#include<stdio.h>
#include<ctype.h>
void main(){
   //Declaring integer for number determination, string//
   int i=0;
   char a;
   char string[50];
   int counter=0;
   //Reading User I/p//
   printf("输入字符串:");
   gets(string);
   //Using For loop and predefined function to count upper case alpha's//
   for(a=string[0];a!='\0';i++){
      a=string[i];
      if (isupper(a)){
         counter=counter+1;
         //counter++;
      }
   }
   //Printing number of upper case alphabets//
   printf("Capital letters in string : %d\n",counter);
}
输出结果
输入字符串:nhooo CPrograMMing
Capital letters in string : 7

例子2

在此程序中,我们将看到如何在不使用isupper()−的情况下计算大写字母-

#include<stdio.h>
int main(){
   int upper = 0;
   char string[50];
   int i;
   printf("输入字符串: \n");
   gets(string);
   i = 0;
   while(string[i]!= ' '){
      if (string[i] >= 'A' && string[i] <= 'Z')
         upper++;
         i++;
   }
   printf("\nUppercase Letters : %d", upper);
   return (0);
}
输出结果
输入字符串:
TutOrial
Uppercase Letters : 2