输入一个字符串,判断里面有多少个大写字母。帮我改改。

chars[255];char*p=s;intcishu=0;printf("请连续输入字符串:");scanf("%s",p);inti=0;while((*p)!='... char s[255];
char *p=s;
int cishu=0;
printf("请连续输入字符串:");
scanf("%s",p);
int i=0;
while ((*p)!='\0') {
if ((*p)>'A'&&(*p)<'Z') {
cishu++;
}
}
printf("%d",i);
展开
 我来答
joy20226
2012-12-12
知道答主
回答量:20
采纳率:0%
帮助的人:15.9万
展开全部
1 #include <stdio.h>
2 int main(void)
3 {
4 char s[255];
5 char *p=s;
6 int cishu=0;
7
8 printf("请连续输入字符串:");
9 scanf("%s",p);
10
11 while ((*p)!='\0') {
12 if ((*p)>'A'&&(*p)<'Z')
13 {
14 cishu++;
15 }
16 p++;
17 }
18 printf("cishu = %d\n",cishu);
19 }
更多追问追答
追问
你运行没有,结果是错的,但是还是谢谢你,我应改过来了。
追答
运行过,是对的啊!
哩桃仙
2012-12-12 · 超过11用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:25.5万
展开全部
char s[255];
char *p=s;
int cishu=0;
printf("请连续输入字符串:");
scanf("%s",p);
int i=0;
while ((*(p + i))!='\0')
{
if ((*(p + i))>'A'&&(*(p + i))<'Z')
{
cishu++;
}
i++;
}
printf("%d",cishu);
你的(*p)一直代表的是字符串的第一个数,永远都不会为'\0',还有就是你的i声明之后没有用一直为零,上面是我根据你的代码改的,可以判断出有多少个大写字母,希望能够帮到你
追问
char s[255];
char *p=s;
int cishu=0;
int i=0;
printf("请连续输入字符串:");
scanf("%s",p);
int b=strlen(p);
while (i'A'&&(*p)<'Z'){
cishu++;
}
i++;
p++;
}
printf("大写字母=%d",cishu);
你看对不对,如果输入的是shiSHI SHI,结果怎么样
追答
一个字符串是以空格'\0'结尾的,所以你输入的shiSHI SHI相当于输入的shiSHI,所以结果是3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式