这个问题急待解决,大家帮忙解决一下。
这个问题急待解决,大家帮忙解决一下。
2007-11-16 14:36
2007-11-16 15:06
4.从终端输入一串字符,统计其中每个字母的个数,非字母的个数用第27个元素统计。
#include "stdio.h"
#include "ctype.h"
main()
{
int count[27],i;
char ch;
for(i=0;i<27;i++)
{
count[i]=0;
}
while((ch=getchar())!='\n')
{
if(isalpha(ch))
{
ch=tolower(ch);
count[ch-'a']++;
}
else
{
count[26]++;
}
}
for(i=0;i<27;i++)
{
printf("%d ",count[i]);
}
}

2007-11-16 15:27
2007-11-16 15:35
2007-11-16 15:37
3楼判别字符是否为字母的函数写错了
应该是isapha()
if(isapha(ch)) /*判别字符是否为字母*/
ch=tolower(ch); /*将字母转换成小写*/
count[ch-'a']++; /*统计各个字母的个数*/

2007-11-16 19:00


2007-11-16 20:40
3楼判别字符是否为字母的函数写错了
应该是isapha()
if(isapha(ch)) /*判别字符是否为字母*/
ch=tolower(ch); /*将字母转换成小写*/
count[ch-'a']++; /*统计各个字母的个数*/
是你写错了,标准函数库的话应该是 isalpha()

2007-11-16 21:24
这个程序可以不用字符函数做么?
#include"stdio.h"
main()
{
int i,j,sum=0;
int a[27]={0,0},z[26];
char str[1000];
gets(str);
a[26]=strlen(str);
for(i=0;i<strlen(str);i++)
for(j=0;j<26;j++)
if(str[i]=='A'+j||str[i]=='a'+j)
a[j]=a[j]+1;
for(j=0;j<26;j++)
a[j]++;
a[26]=a[26]-sum;
for(j=0;j<26;j++)
z[j]='A'+j;
for(j=0;j<26;j++)
printf("%5c : %d\n",z[j],a[j]);
printf("other : %d\n",a[26]);
}

2007-11-20 21:08

2007-11-20 21:34