700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【C语言】以中文符号(句号)作为标识符进行分行处理

【C语言】以中文符号(句号)作为标识符进行分行处理

时间:2023-02-22 07:35:37

相关推荐

【C语言】以中文符号(句号)作为标识符进行分行处理

文章目录

【C语言】以中文符号(句号)作为标识符进行分行处理一、前言二、说明三、实现3.1 代码3.2 文本文件内容3.2 结果

【C语言】以中文符号(句号)作为标识符进行分行处理

一、前言

这里只考虑单个句号(句号不连续),其余因素暂不考虑

二、说明

windows系统

文本文件保存格式:GBK

代码编码格式:GBK

三、实现

3.1 代码

/*程序功能: txt规范化处理(原文本:wenben.txt)分析:1:以中文句号作为标识符2:实现一个句号就是一行*/#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <string.h>int main(int argc, char *argv[]){FILE *fp, *fpIn, *fp2; // 文件指针int flen = 0;int end_flag = 0;int ending_flag = 0;int print_count = 0;char *filename = argv[1]; // 后台第二个参数:一个待读取的文本文档if (argc == 1){printf("运行程序标准格式:程序文件 原文本文件\n");// printf("获取帮助输入格式:程序文件 -help\n");return 0;}fp = fopen(filename, "r");if (fp == NULL){printf("file %s not found\n");return 0;}// printf("\n成功打开文件");fseek(fp, 0, 2); // 从开始偏移两个字符flen = ftell(fp); // 获取当前位置rewind(fp); // 重定位// 判断句号while (ending_flag == 0){for (int i = 0; i < flen; i++) // 从0位置遍历当前位置{int c = fgetc(fp); // 获取当前字符printf("%c", c); //打印当前字符// 第一个if:判断句号if (c == 161 || end_flag == 1) // 判断句号。getc()读出的句号:161和163{end_flag = 1;if (c == 163) // 同时判断163---必须同时满足163和161{// 满足句号--要是到一行最后有一个句号flen = 1;end_flag = 0;print_count++;printf("\n"); // 换行}else if (c == 0x21){flen = 1;end_flag = 0;print_count++;printf("\n"); // 换行}}// 第二个if:在不是句号的基础上 进行判断if (print_count == 3){flen = 1;}// 第三个if:判断c的位置==-1if (c == EOF){ending_flag = 1;}}}printf("\n写入成功,关闭文件");fclose(fp); // 关闭文件指针return 0;}

3.2 文本文件内容

3.2 结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。