《C语言及程序设计》实践参考——文件中的符号个数

返回:贺老师课程教学链接  项目要求

【项目2-文件中的符号个数】
统计一个文本文件中数字、空格、字母出现的次数,以及文件的字节数,并将结果输出,文本文件名在程序中输入(请自建文本文件完成测试)。
[参考解答]

#include "stdio.h"
#include "stdlib.h"
int main()
{
    FILE *fp ;
    int alpha=0, number=0, space=0, count=0; //分别代表字母、数字、空格个数,及总字节数
    char ch,fname[10];
    printf("文件名:");
    gets(fname);
    fp=fopen(fname,"r");
    ch=fgetc(fp);
    while (ch!=EOF)
    {
        count++;
        if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
            alpha++;
        else if (ch>='0'&&ch<='9')
            number++;
        else if (ch==' ')
            space++;
        ch=fgetc(fp);
    }
    printf("字母: %d, 数字: %d, 空格: %d\n", alpha, number, space);
    printf("总字节数: %d\n", count);
    fclose(fp);
    return 0;
}
时间: 2024-09-09 09:36:55

《C语言及程序设计》实践参考——文件中的符号个数的相关文章

《C++语言基础》实践参考——平方根中的异常

返回:贺老师课程教学链接 项目要求 [项目1-平方根中的异常] 编写一个程序,求输入数的平方根.设置异常处理,当输入负数时采用异常处理机制给出提示. [参考解答] #include<iostream> #include<cmath> using namespace std; double squareroot(double &a) { double n; if(a>=0) n=sqrt(a); else throw a; return n; } int main()

c-如何用C语言编写代码实现:文件中一行的开头是否与正则表达式^$w_ang[.* 相匹配

问题描述 如何用C语言编写代码实现:文件中一行的开头是否与正则表达式^$w_ang[.* 相匹配 如何用C语言编写代码实现:文件中一行的开头是否与正则表达式^$w_ang[.* 相匹配,,,怎么写代码啊,,求大神们指点,,万分感谢!!!! 解决方案 正则表达式应该可以看做是字符串匹配吧

《C++语言基础》实践参考——小玩文件

返回:贺老师课程教学链接  项目要求 [项目1 - 小玩文件](1)下面程序的功能是统计文本文件abc.txt中的字符个数,请填空将程序补充完整. #include <iostream> #include <cstdlib> #include _____________ // (1) using namespace std; int main() { fstream file; file.open("abc.txt", _________); // (2) if

《C++语言基础》实践参考——程序的多文件组织

返回:贺老师课程教学链接 [项目3 - 程序的多文件组织]利用多文件组织,重新实现项目2.其中,整个项目包括3个文件: 主文件: main.cpp,用于定义main()函数 头文件: triangle.h,头文件,声明类,定义内置成员函数 类定义文件: triangle.cpp,用于定义类Triangle中其他成员函数 注意,将3个set函数和3个get函数设计成内置成员函数,其他函数不作为内置函数.[参考解答] (1)main.cpp,用于定义main()函数 #include<iostrea

Linux统计文件中指定字符串个数的2种方法

  统计一个文件中某个字符串的个数,其实就像在一块沙地里面找一块石头,有的人看到石头以后,在上面做个标记(grep),然后记住自己做了多少个标记;有的人看到石头以后,把它跳过去(awk),然后统计自己跳了多少次. 方法1: grep 代码如下: grep -o 'keyword' my_file.txt | wc -l 方法2: awk 代码如下: awk -v RS='keyword' 'END {print –NR}' my_file.txt

《C++语言基础》实践参考——分数类中的运算符重载

返回:贺老师课程教学链接 [项目3-分数类中的运算符重载] (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简).比较(6种关系)的运算.可以在第4周分数类代码的基础上开始工作. class CFraction { private: int nume; // 分子 int deno; // 分母 public: //构造函数及运算符重载的函数声明 }; //重载函数的实现及用于测试的main()函数 [参考解答] #include <iostream> #inclu

《C++语言基础》实践参考——Time类中的运算符重载

返回:贺老师课程教学链接 [项目2-Time类中的运算符重载]实现Time类中的运算符重载. class CTime { private: unsigned short int hour; // 时 unsigned short int minute; // 分 unsigned short int second; // 秒 public: CTime(int h=0,int m=0,int s=0); void setTime(int h,int m,int s); void display(

《C++语言基础》实践参考——复数类中的运算符重载(续)

返回:贺老师课程教学链接 项目要求 [项目1-复数类中的运算符重载(续)]在复数类中的运算符重载基础上(1)再定义一目运算符 -,-c相当于0-c.(2)定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然.[参考解答] #include <iostream> using namespace std; class Complex { public: Complex() { real=0; imag=0; }

《C++语言基础》实践参考—— 链表类

返回:贺老师课程教学链接  项目要求 [项目 - 链表类]动态链表也是程序设计中的一种非常有用的数据结构.可以说,是否能够理解有关操作的原理,决定了你是否有资格称为"科班"出身.在后续的专业基础课中,相关的内容还会从不同的角度,反复地认识,反复地实践.不过,在现阶段多些体验,也是很有必要的了.(1)阅读下面的程序,回顾一下动态链表,阅读程序过程中,请用笔画一画形成链表的过程中指针值的变化. #include <iostream> using namespace std; s