c语言输入一个字符串判断有多少大小写字母,数字和空格这个

#include<stdio.h>#include<string.h>void main(){void tt(char a[]);char a[100];int a1=0,a2=0,a3=0,a4=0;printf("请输入字符串:");scanf("%s",a);tt(a);printf("有大写字母 %d 个\n",a1);printf("有小写字母 %d 个\n",a2);printf("有数字 %d 个\n",a3);printf("有空格 %d 个\n",a4);}void tt(char a[]){int i,a1,a2,a3,a4;for(i=0;i<strlen(a);i++)if(a[i]>'A'&&a[i]<'Z')a1++;else if(a[i]>'a'&&a[i]<'z')a2++;else if(a[i]>'0'&&a[i]<'9')a3++;else (a[i]==' ');a4++;}这个程序哪里有问题?

#include <stdio.h>

#include <string.h>

void main() {

void tt(char a[]);

char a[100];

// int a1 = 0,a2 = 0,a3 = 0,a4 = 0;

printf("请输入字符串:");

scanf("%s",a);

tt(a);

}

void tt(char a[]) {

int i,a1 = 0,a2 = 0,a3 = 0,a4 = 0;

for(i = 0;i < (int)strlen(a);i++) {

if(a[i] >= 'A' && a[i] <= 'Z') a1++; // 因为大写字母包含'A'和'Z',故加上“=”号,下同

else if(a[i] >= 'a' && a[i] <= 'z') a2++;

else if(a[i] >= '0' && a[i] <= '9') a3++;

else if(a[i] == ' ') a4++;

}

printf("有大写字母 %d 个\n",a1); // a1,a2,a3,a4是局部变量,与mani()函数的同名变量没关系。

printf("有小写字母 %d 个\n",a2);

printf("有数字 %d 个\n",a3);

printf("有空格 %d 个\n",a4); // 以"%s"读入的字符串中,是不能读入空格" "的,所以a4永远是0

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-18
只要不是关键字,数字开头,只要是以字母和下划线开头,并且后续字符都是数字或者字母或者下划线多长都可以。但是不宜太长,否则可读性差。比如 int _sjoifjsflajfkldsjflasjflasfjk;肯定可以,但是太长,可读性不好。本回答被提问者采纳
第2个回答  2011-10-18
#include <stdio.h>
#include <string.h>

// 把a1 ,a2 a3, a4定义成全局变量
int a1=0,a2=0,a3=0,a4=0;
void main()
{
void tt(char a[]);
char a[100];
printf("请输入字符串:");

// scanf("%s",a);
// 把scanf用gets代替,scanf以空格为分隔,不能录入包含空格的字符串。
gets(a);
tt(a);
printf("有大写字母 %d 个\n",a1);
printf("有小写字母 %d 个\n",a2);
printf("有数字 %d 个\n",a3);
printf("有空格 %d 个\n",a4);
}

void tt(char a[])
{
int i; // 这里不用定义a1, a2 ,a3 a4
for(i=0;i<strlen(a);i++)
if(a[i]>='A'&&a[i]<='Z')a1++; // > 改成>= < 改成 <=
else if(a[i]>='a'&&a[i]<='z')a2++;
else if(a[i]>='0'&&a[i]<='9')a3++;
else if (a[i]==' ') a4++; // else 改成else if a4++前面的分号去掉
}

c语言输入一个字符串判断有多少大小写字母,数字和空格这个
} printf("有大写字母 %d 个\\n",a1); \/\/ a1,a2,a3,a4是局部变量,与mani()函数的同名变量没关系。printf("有小写字母 %d 个\\n",a2);printf("有数字 %d 个\\n",a3);printf("有空格 %d 个\\n",a4); \/\/ 以"%s"读入的字符串中,是不能读入空格" "的,所以a4永远是0 } ...

c语言输入一串字符串,统计并输出其中的大写字母、小写字母、数字字符...
在C语言中,编写一个程序可以统计并输出给定字符串中的大写字母、小写字母、数字字符和其他字符的数量。程序使用指针遍历字符串,通过条件判断来区分各类字符。以下是该程序的示例代码:include<stdio.h>voidmain(){chara[100];intsum0=0,suma=0,sumA=0;gets(a);char*p;for(p=a;*p!='\\0';p++)...

C语言编程 从键盘输入一个字符串,分别统计其中大写字母、小写字母及其...
} printf("大写字母的个数为:%d 小写字母的个数为:%d 空格个数为:%d \\n",countd,countx,countk);printf("数字个数为:%d 其他字符个数为%d\\n",counts,countq);}

C语言编程从键盘输入一个字符,判断该字符是否为控制字符、空格、数字字...
{ case'1':printf("xiao\\n");break;case'2':printf("da\\n");break;case'3':printf("空格\\n");break;default:printf("qita");} }

c语言 输入一串字符串,统计并输出其中的大写字母、小写字母、数字字符...
要编写一个C语言程序,统计输入字符串中的大写字母、小写字母、数字字符和其他字符的个数,可以按照以下步骤进行。首先,我们需要定义一个字符数组来存储输入的字符串,并设置四个计数器分别用于记录各类字符的数量。c include void main() { char a[100];int sum0 = 0, suma = 0, sumA = 0; \/...

c语言 输入一串字符串,统计并输出其中的大写字母、小写字母、数字字符...
void main(){ char a[100];int sum0=0,suma=0,sumA=0;gets(a);char*p;for(p=a;*p!='\\0';p++){ if(*p>='0'&&*p<='9')sum0+=1;else if(*p>='a'&&*p<='z')suma+=1;else if(*p>='A'&&*p<='Z')sumA+=1;} printf("数字字符数量:%d\\n小写字母字符数量:%d\\n大写...

...字母(分大小写)及空格、数字、回车和其他字符,咋编?
}output(sign, 256);}void input(char source[]){int i;printf("input a string(end of EOF) : ");for(i=0; i<MAX-1 && (source[i]=getchar())!=EOF; i++);source[i] = '\\0';}void output(int sign[], int n){int i;\/\/输出数字for(i='0'; i<'0'+10; i++){...

编程实现从键盘输入一个字符,如何判断字符是数字、大小写字母、空格还...
c语言中,每一种类型的字符有固定的ASCII范围!以下是本题的答案:\\r\\n\\r\\n#include\\r\\nvoid main()\\r\\n{\\r\\n\\tchar c;\\r\\n\\tprintf("请输入一个字符:\\n");\\r\\n\\tc=getchar();\\r\\n\\tif(c>=48&&c=65&&c=97&&c<=122)\\r\\n\\t\\t\\t\\tprintf("该字符是小写字母!\\n");\\...

...小写字母、空格、数字以及其他字符的个数。
int i,uc,lc,sp,di,ot;printf("Please enter a string...\\n");i=0;while(s[i]=getchar(),s[i]!='\\n' && ++i<300);uc=lc=sp=di=ot=0;for(s[i]='\\0',i=0;s[i];i++)if(s[i]>='A' && s[i]<='Z')uc++;else if(s[i]>='a' && s[i]<='z')lc++;els...

...字符统计其中大写字母,小写字母。数字及其他字符的个数
\/\/分别记录大写,小写,数字的个数。int big=0, small=0, character=0,qita = 0;while (*ch){ if ((*ch>='A')&&(*ch<='Z')){ ++big;} else if ((*ch>='a')&&(*ch<='z')){ ++small;} else if ((*ch>='0')&&(*ch<='9')){ ++character;} else { ++qita;} +...

相似回答