#include <stdio.h>
void main() {
int lowercase = 0;
int uppercase = 0;
int digit = 0;
int other = 0;
for (;;) {
char ch;
char chEnter;
printf("input a char:\n");
scanf_s("%c", &ch);
chEnter = getchar();
if (ch >= 'a' && ch <= 'z') {
lowercase++;
}
else if (ch >= 'A' && ch <= 'Z') {
uppercase++;
}
else if (ch >= '0' && ch <= '9') {
digit++;
}
else if (ch == -1) {
break;
}
else {
other++;
}
}
printf("lowercase:%d\n", lowercase);
printf("uppercase:%d\n", uppercase);
printf("digit:%d\n", digit);
printf("other:%d\n", other);
}
你这for循环没有限制条件,应该加入头文件#include<string.h>
int a[10000],i;//你的ch是单个字符,这个是整个字符串。
gets(a);//获取整个字符串。
int len=strlen(a);//整个字符串长度
#include <stdio.h>
#include<string.h>
int main()
{
int lowercase = 0;
int uppercase = 0;
int digit = 0;
int other = 0;
int i,len;
char a[10000];
gets(a);len=strlen(a);
printf("input a char:\n");
for (i=0;i<len;i++) {
if (a[i] >= 'a' && a[i] <= 'z') {
lowercase++;
}
else if (a[i] >= 'A' && a[i] <= 'Z') {
uppercase++;
}
else if (a[i] >= '0' && a[i] <= '9') {
digit++;
}
else if (a[i] == -1) {
break;
}
else {
other++;
}
}
printf("lowercase:%d\n", lowercase);
printf("uppercase:%d\n", uppercase);
printf("digit:%d\n", digit);
printf("other:%d\n", other);
}
```c
```