C语言实现统计文本文件中,26个英文字母的分别的数量,及其他字符的数量。

2025-01-06 10:52:20
推荐回答(2个)
回答1:

#include
#include
#include

int count[27] ; //0-25代表a-z,26代表其它字符
char s[1001] ;

int main()
{
int i ;
FILE *fp ;
fp = fopen("自己给出路径名","r") ;
while( fgets(s,1000,fp) ) {
for( i = 0 ; s[i] ; i ++ ) {
if( s[i] <'A' || s[i] > 'z' || ( s[i] > 'Z' && s[i] < 'a' ) ) //证明是其它字符
count[26] ++ ;
else if( s[i] < 'a' ) //大写字符
count[s[i] - 'A' ] ++ ;
else
count[s[i] - 'a'] ++ ;
}
}

for( i = 0 ; i < 26 ; i ++ ) {
printf("%c 或者 %c:%d次\n", 'A' + i , 'a' + i , count[i]);
}
printf("其他字符:%d次\n",count[26]);

return 0 ;
}

回答2:

//#include "stdafx.h"
#include 
//打开:fopen 关闭:fclose
//读取:fread 写入:fwrite

//指针:就是一个变量的地址(0代表空地址)
//指针变量:就是一个用于记录内存地址的变量
int main(int argc, char* argv[])
{
FILE * pf = fopen( "1.txt", "r" );
int i=0,j=0; 
char ch;
while((ch=fgetc(pf))!=EOF)
 {
  //fputc(ch,out);
  putchar(ch); 
  if((ch>'a'&&ch<'z')||(ch>'A'&&ch<'Z') )
    i++;
j++; 
 }
 printf ("英文字符%d",i); 
 printf ("其他字符%d",j); 
 printf ("所有字符%d",j+i); 
 getchar();

return 0;
}

这个简单啊~~啦啦啦~~~等下~~给你写