输入一个字符串,统计其中大写字母和小写字母的个数。
输入一个字符串,统计其中大写字母和小写字母的个数。#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void main()
{
chara; //存放字符
char str;
int i;
int b = { 0 };
printf("请输入字符串:\n");
scanf("%c", &a);
gets(a);
for (i = 0; (str = a) != 0; i++)
{
if (str >= 'a' && str <= 'z')
b=b+1;
else if (str >= 'A' && str <= 'Z')
b=b+1;
}
printf("小写字母个数为%d", b);
printf("大写字母个数为%d", b);
}
本帖最后由 风过无痕1989 于 2020-11-29 17:07 编辑
你的程序没有逻辑问题,只是你要输入一个字符串,你得用循环呀,单独一条 scanf() 语句是完成不了输入的
完成了输入,这个程序就正确了。我用的是 VS2015 ,gets() 这个函数已经被废弃了,在它那里是错误,程序你自己完成就好了
我还是将我的程序给你吧:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void main()
{
chara; //存放字符
char str;
int i = 0;
int b = { 0 };
printf("请输入字符串:\n");
while ((a = getchar()) != '\n')
{
i++;
}
a = '0'; // 下面是最后一个单元为0作为结束符的
i = 0;
while((str = a) != '0')
{
if (str >= 'a' && str <= 'z')
b = b + 1;
else if (str >= 'A' && str <= 'Z')
b = b + 1;
i++;
}
printf("小写字母个数为%d\n", b);
printf("大写字母个数为%d\n", b);
} 本帖最后由 jackz007 于 2020-11-29 16:41 编辑
使用这两句代码不能达到预期的目的。
scanf("%c", &a);
gets(a);
可以用下面的任何一个代替
scanf("%s" , a) ;
fgets(a , 80 , stdin) ;
for(i = 0 ; (a = getchar()) != '\n' ; i ++) ;
a = '\0' ;
页:
[1]