122Ml 发表于 2020-8-3 11:39:12

检测字符中含几个大写字母

#include <stdio.h>

int main()
{
        char name;
    int i=0,count=0;
       
        printf("请输入一行英文句子:\n");
        scanf("%s",name);
       
        while(name<=50)
        {
                if(name>='A'&&name<='Z')
                {
                        count++;
                }
        }
        printf("有%d个大写字母!\n",count);
       
        return 0;
}
不管输入什么,count的值不变

122Ml 发表于 2020-8-3 11:39:59

{:10_266:}

122Ml 发表于 2020-8-3 11:41:46

标题打错了,应该是字符串

zltzlt 发表于 2020-8-3 11:50:16

本帖最后由 zltzlt 于 2020-8-3 11:56 编辑

#include <stdio.h>

int main()
{
    char c;
    int count = 0;
    printf("请输入一行英文句子:\n");
    while ((c = getchar()) != '\n')
      if (c >= 'A' && c <= 'Z')
            count++;
    printf("有%d个大写字母!\n", count);
    return 0;
}

liuzhengyuan 发表于 2020-8-3 12:21:10

while(name!= '\n')

baige 发表于 2020-8-3 12:35:07

本帖最后由 baige 于 2020-8-3 13:35 编辑

#include <stdio.h>

int main()
{
      char name;
        int i=0,count=0;
      
      printf("请输入一行英文句子:\n");
      scanf("%s",name);
      
      while(name!='\0')//字符串以\0结尾,当name=='\0'字符串结束
      {
                if(name>='A'&&name<='Z')
                {
                        count++;
                }
      }
      printf("有%d个大写字母!\n",count);
      
      return 0;
}

122Ml 发表于 2020-8-3 13:11:50

baige 发表于 2020-8-3 12:35


运行结果,结果永远少一位啊,比如ASDFGH,六个大写字母,输入运行,结果为五个.

baige 发表于 2020-8-3 13:13:16

122Ml 发表于 2020-8-3 13:11
运行结果,结果永远少一位啊,比如ASDFGH,六个大写字母,输入运行,结果为五个.

i初始化为-1吧

baige 发表于 2020-8-3 13:13:49

#include <stdio.h>

int main()
{
      char name;
      int i=-1,count=0;
      
      printf("请输入一行英文句子:\n");
      scanf("%s",name);
      
      while(name!='\0')//字符串以\0结尾,当name=='\0'字符串结束
      {
                if(name>='A'&&name<='Z')
                {
                        count++;
                }
      }
      printf("有%d个大写字母!\n",count);
      
      return 0;
}

122Ml 发表于 2020-8-3 13:14:21

baige 发表于 2020-8-3 13:13
i初始化为-1吧

emmmmmm输出结果count直接为0了

baige 发表于 2020-8-3 13:17:05

122Ml 发表于 2020-8-3 13:14
emmmmmm输出结果count直接为0了

你发下你的代码,我这边没问题

122Ml 发表于 2020-8-3 13:18:40

baige 发表于 2020-8-3 13:17
你发下你的代码,我这边没问题

#include <stdio.h>

int main()
{
      char name;
      int i=-1,count=0;
      
      printf("请输入一行英文句子:\n");
      scanf("%s",name);
      
      while(name!='\0')//字符串以\0结尾,当name=='\0'字符串结束
      {
                if(name>='A'&&name<='Z')
                {
                        count++;
                }
      }
      printf("有%d个大写字母!\n",count);
      
      return 0;
}

122Ml 发表于 2020-8-3 13:19:49

直接照抄运行的

122Ml 发表于 2020-8-3 13:20:28

baige 发表于 2020-8-3 13:22:27

本帖最后由 baige 于 2020-8-3 13:24 编辑

先编译一下,再运行

baige 发表于 2020-8-3 13:23:50

发图片需要审核

122Ml 发表于 2020-8-3 13:24:32

baige 发表于 2020-8-3 13:22
先编译一下

不行,手动编译按键和F11一键编译运行都不行,是C++的问题还是64位系统的问题吧

baige 发表于 2020-8-3 13:26:41

#include <stdio.h>

int main()
{
      char name;
      int i=0,count=0;
      
      printf("请输入一行英文句子:\n");
      scanf("%s",name);
      
      while(name!='\0')//字符串以\0结尾,当name=='\0'字符串结束
      {
                if(name>='A'&&name<='Z')
                {
                        count++;
                }
                i++;
      }
      printf("有%d个大写字母!\n",count);
      
      return 0;
}

122Ml 发表于 2020-8-3 13:27:03

或者,i=0,count=1,这样输入1个以上大写字母时就能正常运行了,但输入除大写字母之外的值都为1,勉强能用

baige 发表于 2020-8-3 13:27:12

baige 发表于 2020-8-3 13:26


那就这个吧,刚去64为测试了一下上面的不行
页: [1] 2
查看完整版本: 检测字符中含几个大写字母