| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11515 人关注过本帖
标题:统计文本文件中各类字符个数:
只看楼主 加入收藏
小可爱0920
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2016-12-18
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:3 
统计文本文件中各类字符个数:
统计文本文件中各类字符个数:分别统计一个文本文件中字母、数字及其他字符的个数。试编写相应程序
搜索更多相关主题的帖子: 统计 文本文件 字母 
2017-02-22 19:40
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:2 
怎么还没有人回答~不是先读取文件内容然后再统计么~简单点的读取一个统计一个~直到文件末尾~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-02-23 07:59
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
收藏
得分:9 
没什么检查,不知道有什么错误或漏洞
程序代码:
#include <stdio.h>

int main(int argc, char **argv)
{
    int ZiMu[26] = {0};
    int ShuZi[10] = {0};
    int QiTa = 0;
    char c;
    int i;

    FILE * p ;
    p = fopen("test.txt","a+");
    printf("注意:需要在本程序的根目录生成test.txt文件,并输入文本内容作查询资料。\n"
            "我这里把EOF也读为一个其他字符并输出,所以EOF也算作了其他字符。\n");
    if (p != NULL){
            printf("\n以下为读出的内容\n");
            do{
                c = fgetc(p);
                printf("%c",c);
                if (c >= 'a'&& c <= 'z'){
                    ZiMu[(c-'a')]++;
                }else if (c >= 'A' && c <= 'Z'){
                    ZiMu[(c-'A')]++;
                }else if (c >= '0' && c <= '9'){
                    ShuZi[(c-'0')]++;
                }else {
                    QiTa++;
                }
            } while (c != feof(p) && c != EOF);
        fclose(p);
    }
    
    printf("\n以下各字母数\n");
    for (i = 0 ; i < 26 ; i++){
        printf("%3c",i+'A');
    }
    printf("\n");
    for (i = 0 ; i < 26 ; i++){
        printf("%3d",ZiMu[i]);
    }
    printf("\n");
    
    printf("\n以下各数字数\n");
    for (i = 0 ; i < 10 ; i++){
        printf("%3d",i);
    }
    printf("\n");
    for (i = 0 ; i < 10 ; i++){
        printf("%3d",ShuZi[i]);
    }
    printf("\n");
    
    printf("\n以下为其他数\n");
    printf("%d",QiTa);
    
    
    return 0;
}



[此贴子已经被作者于2017-2-23 11:00编辑过]

2017-02-23 10:59
宇宙规律
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:232
专家分:128
注 册:2014-5-7
收藏
得分:9 
回复 楼主 小可爱0920

下面程序功能:输入一个字符串,统计此字符串,统计此字符串中字母、数字、空格和其它字符的个数。
#include <stdio.h>  
int letter,digit,space,others;
void funcount(char str[])
 {
int i;  
for(i=0;str[i]!='\0';i++)  
if(str[i]>='a' && str[i]<='z' ||(str[i]>='A'&&str[i]<='Z'))
letter++;
else if(str[i]>='0'&&str[i]<='9')
digit++;
else if(str[i]==' ')
space++;
 else
others ++;
}
int main()
 {
char string[80];
printf("input string:\n");
gets(string);
printf("string:");
puts(string);
 letter=0;
digit=0;
space=0;
others=0;
funcount(string);
 printf("\nletter=%d\ndigit=%d\n",letter,digit);
printf("\nspace=%d\nothers=%d\n",space,others);
 return 0;
}

计算结果:
input string:
abcdefghijklmnopqrstuvwxyz1234567890          <<>>>////;;;;'''[][][{}}]]\\\|||||

string:abcdefghijklmnopqrstuvwxyz1234567890          <<>>>////;;;;'''[][][{}}]]\
\\|||||

letter=26
digit=10

space=10
others=34
Press any key to continue

2017-02-23 11:20
快速回复:统计文本文件中各类字符个数:
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016226 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved