用c语言咋写??求解😭我是真的想不出来,想了一晚上了
如果不区分大小写是
#include <stdio.h>
#include <string.h>
int main()
{
int i;
int a[26]={0}; // 计数
char c;
while ((c=getchar())!='\n' && c!=EOF)
{
if ((c >= 'A') && (c <= 'Z')) {
a[c-'A']++;
}
else if ((c >= 'a') && (c <= 'z')) {
a[c-'a']++;
}
}
for(i=0;i<26;i++)
if(a[i]>0)
printf("%c:%d\n",i+'A',a[i]);
return 0;
}
如有帮助,望采纳!谢谢!
区分大小写就有52个计数值,不区分就是26个计数值,循环遍历整段文字检查每一个字节,按ASCII标准 循环字节 - A >= 0 并 < 26 时为大写 A到Z, 循环字节 -a >= 0 并 < 26时为小时为小写的a到z
char strTest = "abcdef, a, addea 123123"; //测试的字符串
int count[52]; //计数器
memset (count, 0 , 52); //清零
for (int i = 0 ; i < strlen (strTest); i++) {
int offset = strTest[i] - 'a';
if (offset >= 0 && offset < 26)
count[offset] ++;
offset = strTest[i] - 'A';
if ( offset > 0 && offfset < 26)
count[offfet+26] ++;
}
// count[0] 是a出现的次数...依次类推
注意,只对纯英文有效,如果是里面有中文或是其它语言,就保不准了。
对了我刚学到数组,能用我现在学到的内容写吗