GDPU C语言 天码行空12 (未完待续)

news2024/11/26 2:53:21

🍑 C语言实验专栏


编程题

1. 统计文本文件中各类字符的个数

在这里插入图片描述

🍑 C语言读写文件

#include <stdio.h>
#include<ctype.h> //判断字符类型函数的头文件

int main()
{
	FILE *fp1 = NULL,*fp2 = NULL;
	
	fp1 = fopen("f1.txt", "w");//参数1:f1.txt 文件的相对路径  参数2:w:写模式 
	fputs("123456qwerr !!#$~", fp1);//写数据
	//fflush(fp1);//刷新文件(保存数据)(如下:直接关闭也行)
	fclose(fp1);//写完要刷新或者直接关闭文件,不然就是未保存状态

	fp2 = fopen("f1.txt", "r");//读写必须分开,否者乱码  r:读模式
	int let = 0, dig = 0, oth = 0,i = 0;//变量记录 字母 数字 其他字符 的个数
//	按字符读取文件内容
	char c;
	while((c = fgetc(fp2)) != EOF)
	{
		if(isalpha(c))
			let++;
		else if(isdigit(c))
			dig++;
		else
			oth++;
	}
	oth++;// other字符数量记得把 '\0' 也加上

/* //按行读取文件内容
	char ss[100];
	fgets(ss, 100, fp2);
	for(i = 1; i <= 18; i++)//123456qwerr !!#$~ 貌似只有17个字符,其实后边还有个隐形的字符串结束符 '\0'
	{
		char c = ss[i];
		if(isalpha(c))
			let++;
		else if(isdigit(c))
			dig++;
		else
			oth++;
	}
	*/
	printf("letter=%d,digit=%d,other=%d\n", let, dig, oth);
}

2. 字符串的连接

在这里插入图片描述

🍑 gets:读取空格
🍑 自定义函数不能与库函数同名
🍑 字符串的结束标志:\0

#include <stdio.h>
#include <string.h>
char *my_strcat(char *s1, char *s2);

int main() {
	char s1[80], s2[80];
	gets(s1);
	gets(s2);
	char *res = my_strcat(s1, s2);
	printf("%s", res);
	return 0;
}

char *my_strcat(char *s1, char *s2) {
	int i = 0, j = 0;
	while(s1[i])
		i++;
	while(s2[j]) {
		s1[i] = s2[j];
		i++;
		j++;
	}
	s1[i] = '\0';
	return s1;
}

3. 删除文件中的注释

在这里插入图片描述

在这里插入图片描述

🍑 友情提示

🥞 输出注释的文件是 comment.txt
🥞 行注释的结尾是 \n
🥞 按顺序存两个字符,c1,c2,每次只输出 c1

🍑 AC code

#include <stdio.h>
#include <string.h>

int main()
{
	FILE *f1, *f2, *f3;
	char c1, c2,c;//c1 表示前一个字符 c2 表示当前字符

	f1 = fopen("hello.c", "r");//源文件
	f2 = fopen("newhello.c", "w");//非注释内容
	f3 = fopen("comment.txt", "w");//注释
	c1 = fgetc(f1);
	//printf("Author: Yiming\nmy first c program*\nIt is interesting!\ncomment 1\ncomment 2\nadd\ncomment 3\n");
	//事实证明评测系统按照文件内容判定结果,而不是控制台输出
	while((c2 = fgetc(f1)) != EOF)
	{
		if(c1 == '/')//可能为注释的情况
		{
			if(c2 == '/')//行注释
			{
				while((c1 = fgetc(f1)) != '\n')//行注释的结束标志是 换行符
					fputc(c1, f3);
				fputc(c1, f3);//记得把 换行符 也加上
			}
			else if(c2 == '*')//块注释
			{
				c1 = fgetc(f1);
				while((c2 = fgetc(f1)) != EOF)
				{
					if(c1 == '*' && c2 == '/')//块注释结束标志
					{
						c1 = fgetc(f1);
						fputc('\n', f3);
						break;
					}
					else
					{
						fputc(c1, f3);
						c1 = c2;
					}
				}
			}
			else//非注释
			{
				fputc(c1, f2);
				c1 = c2;
			}
		}
		else//非注释
		{
			fputc(c1, f2);
			c1 = c2;
		}
	}
	//释放资源,文件关闭时文件内容自动保存
	fclose(f1);
	fclose(f2);
	fclose(f3);
	return 0;
}

👨‍🏫 参考C语言文件操作

🍑 测试

🍤 输入

⭐ hello.c 源文件代码
新建文件放在当前.c文件同一目录

//Author:Yiming
/*my first c program*
It is interesting!*/
#include"stdio.h"
int main()
{
	int a = 10, b = 20,c;
	printf("My first Programf\n");//comment 1
	printf("Hellot\n");//comment 2
	c=a*b; /*add*/
	printf("%d/%d=%d\n", a, b, a / b);//comment 3
	return 0;
}


🍤 输出

⭐ comment.txt

不出意外,可以直接 写一个以下内容的 comment.txt 就可以过啦😋

Author:Yiming
my first c program*
It is interesting!
comment 1
comment 2
add
comment 3

⭐ newhello.c

开头两空行未处理,只能说明结果与 newhello.c 内容无关



#include"stdio.h"
int main()
{
	int a = 10, b = 20,c;
	printf("My first Programf\n");
	printf("Hellot\n");
	c=a*b; 
	printf("%d/%d=%d\n", a, b, a / b);
	return 0;
}

🙈 能跑就行


片段题

1. 文本文件数据读取与显示

在这里插入图片描述

🍑 空1

(fp = fopen("data3.txt","r"))==NULL

🍑 空2

fgets(str[i],81,fp) != NULL

🍑 空3(不填)

🍑 文件名:建议直接复制粘贴

#include<stdio.h>
#include<stdlib.h>
int main()
{
	FILE *fp;
	int i = 0;
	char str[10][81];  //每行最多80个字符
	if((fp = fopen("data3.txt","r"))==NULL)//打开文件data3.txt
	{
		printf("%s open error!\n", "data3.txt");
		exit(1);
	}
	while(fgets(str[i],81,fp) != NULL)
	{	
		//在循环条件里读了    //读取文件中的一行内容
		printf("%s", str[i]);
		i++;
	}
	fclose(fp);
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/538968.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis练习

阅读教程实例&#xff0c;我们了解原理后可以自己模仿地写一个程序练练手。 1、创建表&#xff0c;然后手动导入数据 create table four kings (id int primary key,name varchar(4) ,idea varchar(20) )CHARSETutf8;; 2、 写一个实体类&#xff0c;对应数据库的表 package …

什么是网络自动化?有多重要?

什么是网络自动化 网络自动化是在网络环境中实现网络和安全自动化的方法&#xff0c;通过减少人力工作量和人为错误来最大限度地提高效率。 网络自动化是自动化每个网络任务&#xff08;如配置管理、备份和监控&#xff09;的过程&#xff0c;以实现管理大型网络基础架构的最…

小红薯评/论数据采集工具

一、小红薯【评/论】采集工具链接&#xff1a; http://106.53.68.168:9920/xhs-comment-spider 二、使用方式 1、打开网页链接后&#xff0c;按照网页各步骤提示进行操作即可。 2、采集数据时&#xff0c;页面右上角显示【RUNNING】代表在运行中&#xff0c;采集结束后&#xf…

【软件测试】初级测试,如何走向中高级软件测试?

关于软件测试这几年是越来越红火&#xff0c;待遇对于其他行业也是非常的高&#xff0c;万八千的待遇很正常&#xff0c;而现在软件测试行业等级越来越专业化&#xff0c;对软件测试工程师的要求也是越来越高&#xff0c;软件测试工程师一般会分为初级软件测试工程师&#xff0…

Web身份验证(WebAuthn)

目录 1、WebAuthn简介 2、FIDO2&#xff1a;客户端到验证器协议&#xff08;CTAP&#xff09; 3、浏览器和平台 4、Web身份验证API 基本流程 5、使用 WebAuthn API 5.1 注册WebAuthn凭据 5.2使用WebAuthn凭据进行身份验证 6、 WebAuthn演示&#xff08;注册和认证&…

IO 与进程线程

IO进程 scanf\printf:终端 IO&#xff1a;input/output&#xff0c;文件 标准IO 文件IO 文件属性获取&#xff1a;ls -l 文件类型 文件权限 链接数 用户名 组名 大小 时间 文件名 目录操作&#xff1a;ls 库 进程 进程&#xff1a;创建进程 线程&#xff1a;创建线程…

36、Adaptive Forms(4)Create Adapt Form

文章目录 36、Adaptive Forms&#xff08;4&#xff09;Create Adapt FormData Model服务配置创建Adapt Form Template创建Adapt Form 36、Adaptive Forms&#xff08;4&#xff09;Create Adapt Form DataModel创建好后&#xff0c;就可以进行数据的获取和存储。 Data Model…

抖音seo源码开发/技术自研底层逻辑

抖音seo霸屏&#xff0c;是一种专为抖音视频创作者和传播者打造的视频批量剪辑&#xff0c;批量分发产品。使用抖音seo霸屏软件&#xff0c;可以帮助用户快速高效的制作出高质量的优质视频。 使用方法&#xff1a;1. 了解用户的行为习惯 2. 充分利用自身资源进行开发 3. 不…

开心档之Java 基本数据类型

Java 基本数据类型 目录 Java 基本数据类型 内置数据类型 实例 实例 类型默认值 实例 引用类型 Java 常量 自动类型转换 自动类型转换 实例 强制类型转换 实例 隐含强制类型转换 变量就是申请内存来存储值。也就是说&#xff0c;当创建变量的时候&#xff0c;需…

4.5.1 虚拟局域网(一)

4.5.1 虚拟局域网&#xff08;一&#xff09; 一、虚拟局域网的划分 虚拟局域网的划分是非常灵活的&#xff0c;可以根据端口进行划分&#xff0c;也可以根据MAC地址进行划分&#xff0c;也可以根据网络层协议进行划分甚至根据IP组播进行划分。 &#xff08;一&#xff09;基…

百度工程师移动开发避坑指南——内存泄漏篇

作者 | 启明星小组 在日常编写代码时难免会遇到各种各样的问题和坑&#xff0c;这些问题可能会影响我们的开发效率和代码质量&#xff0c;因此我们需要不断总结和学习&#xff0c;以避免这些问题的出现。接下来我们将围绕移动开发中常见问题做出总结&#xff0c;以提高大家的开…

【Prompting】ChatGPT Prompt Engineering开发指南(6)

ChatGPT Prompt Engineering开发指南&#xff1a;Expanding/The Chat Format Expanding自定义对客户电子邮件的自动回复提醒模型使用客户电子邮件中的详细信息 The Chat Format总结内容来源 在本教程中&#xff0c;第一部分学习生成客户服务电子邮件&#xff0c;这些电子邮件是…

前端(HTML)

网络传输三大基石:URL,HTTP,HTML 前端使用URL利用HTTP协议去向服务器端发送请求某个资源&#xff0c;服务器端响应浏览器一个HTML页面&#xff0c;浏览器对HTML页面解析 HTML的标准结构: 【1】先用普通文本文档新建一个文本&#xff0c;将文本的后缀改为.html 或者 .htm 我…

chatgpt赋能Python-mac版的python怎么用

Mac版Python的使用指南 Python是一种高级编程语言&#xff0c;常用于Web开发、数据分析、机器学习等领域。在Mac系统上&#xff0c;Python的安装和使用非常方便。本文将介绍如何在Mac上安装和使用Python并演示几个常见的Python用例。 Python在Mac上的安装 Mac电脑自带Python…

springboot+jsp+javaweb学生信息管理系统 05hs

springboot是基于spring的快速开发框架, 相比于原生的spring而言, 它通过大量的java config来避免了大量的xml文件, 只需要简单的生成器便能生成一个可以运行的javaweb项目, 是目前最火热的java开发框架 &#xff08;1&#xff09;管理员模块&#xff1a;系统中的核心用户是管…

蓝牙耳机什么牌子的好用?发烧友实测2023年蓝牙耳机排名

从AirPods入坑蓝牙耳机开始&#xff0c;断断续续已经买过二十多款蓝牙耳机了&#xff0c;我每天都会逛逛数码板块&#xff0c;最近看到了2023年蓝牙耳机排名&#xff0c;为检验是否名副其实&#xff0c;我购入了排名前五的品牌进行了一个月的测试&#xff0c;接下来我就来分享一…

k8s系列(四)——资源对象

k8s系列四——资源对象 pod概念 思考&#xff1a;为什么k8s会引出pod这个概念&#xff0c;容器不能解决么&#xff1f; 我的理解&#xff1a;一组密切相关的服务使用容器的话&#xff0c;如果他们的镜像不在一个容器里的话&#xff0c;那么就需要配置反向代理进行通信&#xf…

Packet Tracer – 配置中继

Packet Tracer – 配置中继 地址分配表 设备 接口 IP 地址 子网掩码 交换机端口 VLAN PC1 NIC 172.17.10.21 255.255.255.0 S2 F0/11 10 PC2 NIC 172.17.20.22 255.255.255.0 S2 F0/18 20 PC3 NIC 172.17.30.23 255.255.255.0 S2 F0/6 30 PC4 NIC 1…

java 根据指定字段排序(mysql)

需求&#xff1a; 查询数据的时候&#xff0c;由前端指定字段和排序方式进行排序。 这时候要怎么做呢&#xff1f; 要定义一个相应的类&#xff0c;排序的时候&#xff0c;是动态拼接的。 要考虑多个字段&#xff0c;不同排序方式的情况。 处理 OrderField import io.swagge…

基于matlab的ADC输入动态范围测量代码

如图&#xff0c;本文主要分享基于matlab的ADC输入数据有效位分析的代码。 fidfopen(C:\Users\Administrator\Desktop\Test.txt,r); % numptinput(Data Record Size (Number of Points)? );% fclkinput(Sampling Frequency (MHz)? ); numpt16384; fclk50; numbit14; [v1]fs…