精华内容
下载资源
问答
  • 本文主要实现功能:用c语言编写程序,实现从命令行传参输入要读入的文件,并动态分配用于保存文件数据内容的数组内存,统计文件中字符的个数,并将文件内容打印输出。 注 (1)本文中统计字符个数的程序只针对字符...

    前言

    本文主要实现功能:用c语言编写程序,实现从命令行传参输入要读入的文件,并动态分配用于保存文件数据内容的数组内存,统计文件中字符的个数,并将文件内容打印输出。

    • 注 (1)本文中统计字符个数的程序只针对字符之间以空格隔开,并且数据之间只能有一个空格,同时行首不能以空格开始,但对于行数,和每行有多少个数据无要求。
      (2)对于数据,为字符,整型数字,字符串等都同样适用(对于字符串,空格与空格之间只算一个字符),但如果要打印结果,则只能为字符,因为文中定义的为char型指针(为了读文件需要,fgetc函数要求保存文件内容的数组为char型)

    对于如何将数据保存到文件中,以及关于动态内存分配的问题,可参考我的另一篇博客:
    c语言从命令行输入数据,并保存到文件中

    主程序

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<math.h>
    int main(int argc,char* argv[])   //命令行传参,argc代表传入参数个数,argv表示传入的参数
    {
    	char *a_in;  //用于保存从文件中读入的数据
    	int i;
    	int count1=-1;  //统计文件中字符个数
    	FILE *in1;  //用于指向文件地址
    	
    	 if(argc!=2)   //判断输入参数个数,如果不为2个就报错
        {
            printf("参数个数错误");
            return -1;
        }
    	
    	in1=fopen(argv[1],"r");   //打开文件,只读,argv[1]表示文件的第二个参数,第一个参数为argv[0],表示运行的命令参数
    	if(in1==NULL)  //无法打开文件
    	{  
    		printf("File cannot open! " );  
    		//exit;  
    		return 0;
    	}  
    
    	a_in = (char*)malloc(sizeof(char)*100);  //动态内存分配
    	if (!a_in)  //分配内存失败
        {
           printf("内存分配失败");
            return-1;
        }
    	printf("c_data文件中的数据为:\n");
    	while((*(a_in)=fgetc(in1))!=EOF)  //只要未到文件末尾就继续读
        {
    		printf("%s\t",a_in);  //打印文件内容,此处打印的文件数据为字符
           if(*(a_in)=='\n' || *(a_in)==' ')    //判断不是空格或换行就计数
    	   {
    		   count1++;  //统计有多少个数
    	   }
    	}
    	
    printf("\n");
    printf("c_data.txt中数字个数为:%d\n",count1);  //打印计数结果
    
    fclose(in1);  //关闭文件指针
    return 0;
    free(a_in);//释放第一维指针 
    return 0;
    
    }
    

    文件内容为26个英文字母,以空格隔开,打印时按行打印。
    文件内容如下:
    在这里插入图片描述

    运行结果

    在这里插入图片描述
    因为加了tab键,所以打印结果时从第二行开始会先有一个tab空格。

    对于同时含有整型数字,double型数字,以及字符时同样适用。
    但由于打印文件内容包含数字,字符,打印时对于数字会有点乱码,所以这里就不打印结果了,只统计个数。
    此时文件内容为:
    在这里插入图片描述

    运行结果

    C:\Users\CL\Desktop\学习\C\conv\fprintf>tcc read.c
    
    C:\Users\CL\Desktop\学习\C\conv\fprintf>read.exe c_data.txt
    
    c_data.txt中数字个数为:64
    

    到这里就成功读入文件,并计算出文件中数据个数。

    展开全文
  • 统计文件中字符的个数(采用命令行参数)#include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]) { char ch; FILE *fp; long count=0; if(argc !=2) { printf("文件名是:%s\n",argv[0]...
    统计文件中字符的个数(采用命令行参数)

    #include<stdio.h>
    #include<stdlib.h>
    int main(int argc, char *argv[])
    {
     char ch;
     FILE *fp;
     long count=0;
     
     if(argc !=2)
     {
      printf("文件名是:%s\n",argv[0]);
      exit(EXIT_FAILURE);
     }
     if ((fp=fopen(argv[1],"r+"))==NULL)
     {
      fprintf(stderr,"不能打开文件\"%s\"\n",argv[1]);
      exit(EXIT_FAILURE);
     }
     while((ch=getc(fp)) !=EOF)
     {
      putc(ch,stdout);
      ++count;
     }
     fclose(fp);
     printf("File %s has %ld characters\n",argv[1],count);
     return 0;
    }

     

    统计文件中字符个数(不采用命令行参数)

    #include<stdio.h>
    #include<stdlib.h>
    #define MAX 80
    int main(void)
    {
     FILE *fp;
     char ch;
     char name[MAX];
     long count=0;
     
     printf("请输入文件名:");
     gets(name);
     if ((fp=fopen(name,"r+"))==NULL)
     {
      fprintf(stderr,"不能打开文件%s\n",name);
      exit(EXIT_FAILURE);
     }
     while((ch=getc(fp))!=EOF)
     {
      putc(ch,stdout);
      count++;
     }
     fclose(fp);
     printf("File %s has %ld characters\n",name,count);
     return 0;
    }

    转载于:https://www.cnblogs.com/kekea/p/4506560.html

    展开全文
  • C语言统计文件中单词的个数 #include <stdlib.h> #include <stdio.h> #include <string.h> #include <conio.h> //argc:统计运行程序时命令行参数的个数 //*argv[]:存储每个参数的字符...

    用C语言来统计文件中单词的个数

    注意:单词以空格为分隔

    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <conio.h>
    
    //argc:统计运行程序时命令行参数的个数
    //*argv[]:存储每个参数的字符串指针,每一个元素对应一个参数
    int main(int argc,char *argv[])
    {
        int ch,bian = 0,count = 0;
        char find[50],temp[100];
        FILE *pt;   //文件指针
        //判断是否输入文件
        if (argc != 2)
        {
            /* code */
            printf("请使用格式:%s 文件名",argv[0]);
            exit(1);     //非正常退出
        }
        //判断能否成功打开文件
        if ((pt = fopen(argv[1],"r"))==NULL)     //将argv[1]赋值给指针pt
        {
            printf("打开文件 %s 失败",argv[1]);
            exit(1);
        }
        printf("请输入要查找的单词:");
        gets(find);
        while ((ch=getc(pt))!=EOF)    //EOF表示文件结束
        {
            if ((ch != ' ')&&(ch!='\n'))
            {
                temp[bian] = ch;
                bian++;
            }
            else
            {
                temp[bian]='\0';
                if ((strcmp(find,temp))==0)
                {
                    count++;
                }
                bian = 0;
                
            }   
        }
        printf("共在文件%s中查到字符串\"%s\"%d个\n",argv[1],find,count);
        getch();
        return 0;
        //system("pause");
    }
    
    

    代码编译好后,打开cmd,首先到自己程序的所在盘(我的程序在D盘),然后 cd 到程序的编译目录(就是程序所在的文件夹),最后输入 程序名文件名 回车运行程序。
    我的操作步骤如下:
    操作步骤

    main函数中参数argc和argv含义及用法

    int main(int argc,char *argv[])

    1.argc 是 argument count的缩写,表示传入main函数的参数个数;

    2.argv 是 argument vector的缩写,表示传入main函数以数组形式保存传递的所有参数,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径。
    例如:
    我输入的参数是:Test.exe demo.txt,argc = 2,argv[0] = Test.exe, argv[1] = demo.txt

    参考资料:用C语言来统计文件中单词的个数

    展开全文
  • 汉字机内码在计算机表达方式描述是,使用二个字节,每个字节最高位一位为1. ...注意:汉字是有两个小于零的字符组成,所以在统计结果时候就要将count除以2了. #include &amp;lt;stdio.h&amp;gt; int main...

    汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1.
    计算机中,补码第一位是符号位,1 表示为负数,所以 汉字机内码的每个字节表示的十进制数都是负数  
    所以这题也就可以简化为输入字符串判断其中字符转化为十进制数是否小于零.
    注意:汉字是有两个小于零的字符组成,所以在统计结果的时候就要将count除以2了.
    #include<stdio.h>
    #include<string.h>
    int main()
    {
    char a[200];
    int n,k,i,t;
    scanf("%d",&n);
    getchar();
    while(n–)
    {
    t=0;
    gets(a);
    k=strlen(a);
    for(i=0;i<k;i++)
    if(a[i]<0)
    t++;
    printf("%d\n",t/2);
    }
    return 0;
    }
    getchar()函数:从stdio流中读字符,相当于getc(stdin),它从标准输入里读取下一个字符.

    getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键. 
    

    注意:如果输入的是中文字符,由于汉字是两个字节,所以getchar()函数对汉字要处理两次.比如我输入2个汉字,getchar()处理4次,返回4个值,由于是中文返回的肯定是负数.

    什么是汉字机内码?

    答:机内码,就是用二个字节,最高位为1,用它来表示一个汉字,在用到这个字时,系统按这个编号去找它的点阵信息,然后把它显示出来

    展开全文
  • 计算机,补码第一位是符号位,1 表示为负数,所以 汉字机内码每个字节表示十进制数都是负数 所以这题也就可以简化为输入字符串判断其中字符转化为十进制数是否小于零.注意:汉字是有两个小于零的字符组成,所以在...
  • 统计data.txt文件中大写字符、小写字符、数字、其他字符的个数,代码如下: /*统计一个文件中的大写字母 小写 字母 数字 及其他字符的个数*/ void chapter1::statistic() { printf_s("统计文件开始\r\n"); char ...
  • 声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。  C语言进行底层开发时经常会用到位运算,比如操作系统中各种描述符,不同位代表着不同... 文本文件中每个英文字符占一个字节,最高位
  • 文件描述:统计字符单词的个数.c 作者:安理计算机 杨腾飞 日期:2019.2.15 版本:v1.1 问题描述:输入一行字符,然后判断其中有多少单词,要求每个单词间用空格分开,并且最后的字符不能为空格 知识点: ------...
  • 第8章 文件; 本章主要介绍了文件的概念文件的打开与关闭文件的读/写操作理解文件...编程统计一个文本文件中字母字符数字字符及其他字符的个数; 3.编程从键盘输入一串字符用结束输入存放到一个文本文件中统计该串字符
  • 2.统计给定的一组文本文件的英文单词、字符、数字字符、空白字符、英文字母和其他字符的个数请你扮演项目组程序员角色,认真阅读CodeForLab6.cpp和CodeForLab6.h的开发要求,按照项目经理要求,完成规划好的各个...
  • //函数fun功能:统计字符各元音字母的个数,注意:不区分大小写。 //重难点:switch语句的使用。 1 #include <stdlib.h> 2 #include <conio.h> 3 #include <stdio.h> 4 /*********...
  • 检索单词的个数

    2017-06-12 00:56:17
    文本检索是软件最常用的一个功能,用C语言写一段程序,统计某个文件中单词的个数。 提示:单词是以空格为分隔的。 文本检索是软件最常用的一个功能,下面的代码将教你如果使用C语言统计单词的个数。 代码...
  •  1) 问题描述: 读入一个(最多9个)C程序代码文件统计程序代码、注释和空行数以及函数的个数,显示函数名并生成相应的记录日志。  2) 基本要求如下:  (1)、把程序文件(如.c或者.txt等)按字符顺序读入源...
  • c语言经典案例

    2014-10-30 08:06:57
    实例083 求从键盘输入字符的个数 106 实例084 打印杨辉三角 108 实例085 求总数问题 109 实例086 彩球问题 110 实例087 新同学年龄 112 实例088 灯塔数量 113 实例089 计算12+22+…+102 114 实例090 循环显示...
  • c语言实现扫雷游戏

    2021-02-28 16:26:07
    分别为布雷和排雷后的表格,其中我们以字符1表示此处有雷,字符0表示此处无雷,在布雷时我们用时间函数布置随机的10个雷(具体多少个雷可自行选择),在另一个表格显示出所选位置周围雷的个数 建立11*11的表格是...
  • 如果输出的是字符, 则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。 5.长度 长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。 void main(){ int a=15; float b=138....
  • 输入一行字符,以回车键作为结束标志,分别统计出大写字母、小写字母、空格、数字和其它字符的个数。 (21)求 的值,其中a是一个数字,如2+22+222+2222+22222(此时a=2,n=5),a和n均由键盘输入。 (22)读入一...
  • 实验三、Huffman编码(二叉树) ... 统计字符串中字符的种类以及各类字符的个数的函数  构造Huffman树的函数  Huffman编码的函数  建立正文的编码文件的函数  代码文件的译码函数  主函数
  • 实例136 奇数的个数 341 实例137 字符的处理 344 实例138 个位数为3、6、9的正整数 347 实例139 字符倒排 349 实例140 千位数大于个位数的正整数 352 实例141 整数部分与小数部分的总和 355 实例142 字符的...
  • 此解决方案的项目包含- -个源程序文件prog1.c 在此程序,编写函数fun,该函数的功能是:统计-行字符单词的个数,作为函数值返回。字符串在主函数输入,规定所有单词由小写字母组成,单词之间有若干个空格隔...
  • 1.读入一个英文文本文件,英文有字母、数字、其它字符,无汉字,文件有多行。 2.编写函数实现:统计字母的出现频度,并显示结果。 3.编写函数实现:统计其中单词的个数,并显示结果。(单词个数以WORD统计为准) ...
  • 编写函数实现:统计其中单词的个数,并显示结果。(单词个数以WORD统计为准) 找出最长的单词,并显示单词及其长度。 返回单词的统计结果。 4.统计出现的整数,存入一维数组,并显示结果。 注:学会利用字符...
  • int Count(int cou[]) //计算输入的字母的个数 { std fstream SourceFile; char word; char letter[27]={' ','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o', 'p','q','r','s','t','u','v','w','x...
  • ##python读取大文件的机制

    千次阅读 2017-03-14 21:54:43
    概述:最近经常听别人的面试题目是读取一个大文件,然后出来读取到的字符串,比如某串的个数了,某串的出现频率之类的,和朋友聊天过程决定用不同的语言比个赛,分别是c,python,shell。我原本以为c语言一定会获胜...
  • 2020-06-18

    2020-06-18 12:48:25
    编写代码,要求如下(c语言) 1.创建一个文件STRING.txt。...3.利用文件读出函数,读出文件中的字符串,统计文本文件中字符串所包含的各类字符个数:字母、数字及其它字符的个数。 4.输出各类字符个数。 ...
  • 实例042 求字符串中字符的个数 51 实例043 递归解决年龄问题 53 实例044 求学生的平均身高 54 实例045 分数计算器程序 55 1.8 趣味计算 57 实例046 加油站加油 57 实例047 小球下落问题 58 实例048 ...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

c语言统计文件中字符的个数

c语言 订阅