检测字符中含几个大写字母
#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的值不变 {:10_266:} 标题打错了,应该是字符串 本帖最后由 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;
} while(name!= '\n') 本帖最后由 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;
} baige 发表于 2020-8-3 12:35
运行结果,结果永远少一位啊,比如ASDFGH,六个大写字母,输入运行,结果为五个. 122Ml 发表于 2020-8-3 13:11
运行结果,结果永远少一位啊,比如ASDFGH,六个大写字母,输入运行,结果为五个.
i初始化为-1吧 #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;
} baige 发表于 2020-8-3 13:13
i初始化为-1吧
emmmmmm输出结果count直接为0了 122Ml 发表于 2020-8-3 13:14
emmmmmm输出结果count直接为0了
你发下你的代码,我这边没问题 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;
} 直接照抄运行的 本帖最后由 baige 于 2020-8-3 13:24 编辑
先编译一下,再运行 发图片需要审核 baige 发表于 2020-8-3 13:22
先编译一下
不行,手动编译按键和F11一键编译运行都不行,是C++的问题还是64位系统的问题吧 #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;
} 或者,i=0,count=1,这样输入1个以上大写字母时就能正常运行了,但输入除大写字母之外的值都为1,勉强能用 baige 发表于 2020-8-3 13:26
那就这个吧,刚去64为测试了一下上面的不行
页:
[1]
2