上海古北路属于哪个区:编一个程序,C语言高手进

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 20:05:17
输入一个或几个英语单词,按回车,得到每一个英文字母的个数
应该怎么编,我是新手啊,不是很懂,希望编简单一点
最好加上解释 谢了啊

 
 
 
/* 不区分字母大小写(把大写都当成小写)*/

#include <stdio.h>
#include <ctype.h>

void main( ) {
    static c, count[ 26 ];                          /* 注 1 */
    while ( ( c = getchar( ) ) != '\n' )            /* 注 2 */
        if ( isalpha( c ) )
            count[ tolower( c ) - 'a' ]++;          /* 注 3 */
    for ( c = 'a'; c <= 'z'; c++ )                  /* 注 4 */
        printf( "%c=%d\t", c, count[ c - 'a' ] );   /* 注 5 */
}

/*

注:

1)这句等于 static int c, count[ 26 ]; ,因为声明变量时 int 是默认类型。
   这里用 static(静态)是为了要免去写初始化 count 数组的代码
   (声明静态变量时若不赋值, 编译器会自动赋初值 0 )。

   count[ 0 ] 是 'a' 的个数,count[ 1 ] 是 'b' 的个数。。。(以此类推)

2)逐一读取标准输入(一般是键盘输入)的字符,直到碰上回车为止。

3)tolower( c ) - 'a' 这个表达式所产生的值的可能范围是 0 至 25,
   因为前一行的 if ( isalpha( c ) ) 确保执行这一句时,c 必定是字母,
   因此 tolower( c ) 返回的必定是小写字母。
   
   这意味着若 c 的值是 'a' 或 'A', tolower( c ) - 'a' 即等于 'a' - 'a',
   即是 0 ,所以 count[ tolower( c ) - 'a' ]++ 即等于 count[ 0 ]++ ,
   达到了把 'a'(或 'A')的个数自增的效果。

   这样的安排简洁地使每一个前来报到的字母“对号入座”。
   
4)让 c 遍历 'a' 至 'z' 的代码可以这样写。

5)有了前面的注释,这行你肯定看得懂。

*/
 
 
 

字母大小写有区别么?以下程序是假设不区别:

#include "stdio.h"
void main()
{
int num[26];
for(int i=0;i<26;i++) num[i]=0;
char str[81] ,*p=str;
gets(str);
while(*p)
{
if (*p>='a' && *p<='z')
{
num[*p-'a']++;
}
else if(*p>='A' && *p<='Z')
{
num[*p-'A']++;
}
p++;
}
for(i=0;i<26;i++)
{
printf("%c:%d\n",i+'a',num[i]);
}
}

#include<stdio.h>
#define N 100
comp(int i,int b[])
{
int n;
for(n=0;b[n]!='\0';n++)
if(i==b[n]) return 0;
return 1;
}
main()
{
char a[N];
int cout,i,j,b[N],k=0;
gets(a);
for(i=0;a[i]!='\0';i++)
{
cout=1;
for(j=i+1;a[j]!='\0';j++)
{
if(a[i]==a[j])
{ cout++;
b[k]=j;
k++;
}
}
if(comp(i,b))
printf("the No.of %c=%d\n",a[i],cout);
}
}

#include "string.h"
#include "stdio.h"

strle(char a[])
{int num=0,n=0;
while(*(a+num)!='\0') num++;/*num是字母个数,每过一个加一下 直到
遇见\0 */
return (num);}

main()

{ char str1[81],*p1=str1;

gets(p1); /*得到字符串*/

printf("%d\n",strle(p1)); }

输入一个字母可得个数 多个的你想要怎么写?我QQ270949272

看错题了,是统计每个字母的个数,tanyuguo的程序很好,用他的吧

tanyuguo挺厉害的