单独写出一个函数出来,基本思想就是用fscanf一个一个字符读取出来,(文本流只能用fscanf,不能用fgetc等用于二进制流的函数,不然会导致乱码)遇到<的时候就停止读取,先把之前存进copy数组里面的字符先写进txt文件里面,记得要用fprintf,用于文本流,不然用fputc或者fputs这些都是用于二进制流的。

!!!!!!!!切记,就连扫描文本流的时候也要用文本流的函数扫描,要用fscanf函数,要不然你就是冤大头,你的读入内容就会乱码!!!!!!!!!

有一个细节就是要把字符数组留一个空位出来,当遇到<或者扫描到数组倒数第二个空位的时候,记得把最后一个空位赋值为‘\0’,这样才能用fprintf进行字符串原本的输入到文本里面去。

然后若遇到用一个字符类型的变量继续从遇到 < 开始扫描,一直遇到>的时候, goto类型跳转,重新将字符串数组copy进行初始化。

(!!强调一下,一般不要用goto,但是这里我为了偷懒,也不是做什么大项目)

以此类推,一直到文本流到最后即可完成了删除超链接的操作。

void deltxt(char ch, FILE *fp, FILE *temp)//删除超链接 ,temp为另一个文件,可为临时文件,也可为另一个文件
{
char copy[11];
//char ch;
int i;
int index;
int time = 0;
pos_1:
while(!feof(fp))
{
time = 0;
for(i = 0; i < 10; i++)
{
copy[i] = ' ';
} for(i = 0; i < 10; i++)
{
fscanf(fp, "%c", &copy[i]);
if(copy[i] == '<')//当读取到<的时候
{ time++;
copy[i] = '\0';//让他结束扫描,直接把字符串写进去
fprintf(temp, "%s", copy);
while(1)
{
ch = getc(fp);
if(ch == '<') time++;//出现一次<就加一
while(ch == '>')//遇到>就进去
{
--time;//减一
while(1)
{
if(time == 0) goto pos_1;//当减到0,遇到最后一个>的时候就继续跳到pos_1处继续扫描
ch = getc(fp);//继续扫描
if(ch == '>') --time;//遇到>就减一
}
}
}
}
else if(i == 9 && time == 0)//当一直没遇到< , 且遇到>的次数已经达到遇到<的次数,那就打印。
{
copy[10] = '\0';
fprintf(temp, "%s", copy);
}
} } }

C语言:如何删除超链接的更多相关文章

  1. [No00000D]word如何批量删除超链接 怎么去掉网址保留文字

    1.删除超链接的文字及网址 这种情况是想把带有网址的文字统统删掉,文字和网址一概不留. 首先在word界面按下ALT+F9(在所有的域代码及其结果间进行切换.),超链接文本会被转换成代码的样式. 例如 ...

  2. Swift3.0语言教程删除字符与处理字符编码

    Swift3.0语言教程删除字符与处理字符编码 Swift3.0语言教程删除字符 Swift3.0语言教程删除字符与处理字符编码,在字符串中,如果开发者有不需要使用的字符,就可以将这些字符删除.在NS ...

  3. ytu 1998:C语言实验——删除指定字符(水题)

    C语言实验——删除指定字符 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 327  Solved: 211[Submit][Status][Web Boa ...

  4. WPS复制时删除超链接

    按Ctrl+A全选,之后再按Ctrl+Shift+F9,即可一次性全部删除超链接.

  5. C 语言实例 - 删除字符串中的特殊字符

    C 语言实例 - 删除字符串中的特殊字符 C 语言实例 C 语言实例 删除字符串中的除字母外的字符. 实例 #include<stdio.h> int main() { ]; int i, ...

  6. 在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的“删除”超链接

    查看本章节 查看作业目录 需求说明: 在页面上绘制一张表格,使用 DOM 节点的动态添加和删除向表格中插入数据,点击表格每行后的"删除"超链接,使用 DOM 节点的删除操作将对应的 ...

  7. C语言数组删除增加一个元素

    malloc,realloc,calloc一直很头疼,这次笔试题需要在数组后重新分配新的空间的代码是: //删除函数,删除ptr中的ptr[in]元素,n是数组原来的长度. void rmv(int ...

  8. C语言 · 字符删除

    算法训练 字符删除   时间限制:1.0s   内存限制:512.0MB      问题描述 编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str ...

  9. Leecode刷题之旅-C语言/python-83删除排序链表中的重复元素

    /* * @lc app=leetcode.cn id=83 lang=c * * [83] 删除排序链表中的重复元素 * * https://leetcode-cn.com/problems/rem ...

  10. Leecode刷题之旅-C语言/python-26.删除数组中的重复项

    /* * @lc app=leetcode.cn id=26 lang=c * * [26] 删除排序数组中的重复项 * * https://leetcode-cn.com/problems/remo ...

随机推荐

  1. HE琥珀虚颜破解自由安装程序教程(001)

    HE琥珀虚颜破解自由安装程序教程(001) 前言 自从狗尾草跑路后,HE琥珀就没法用了,当前APP还没法破解,但是笔者找到了HE琥珀存在的一些漏洞,可以实现安装自己的APP. 所需工具 所需工具 1. ...

  2. DevEco Hvigor高效编译,构建过程新秘籍

      作者:Lewei,华为终端BG编译构建技术专家 DevEco Hvigor是使用TypeScript语言开发的全新轻量化的任务调度工具,针对HarmonyOS应用提供了一系列编译构建任务,支持将H ...

  3. 鸿蒙开发套件之DevEco Profiler助您轻松分析应用性能问题

     作者:shizhengtao,华为性能调优工具专家 应用的性能优化一直以来都是开发者所面临的一大难题,在2023HDC大会上全新亮相的HarmonyOS NEXT开发者预览版,其中鸿蒙开发套件Dev ...

  4. ArkUI开发趣味体验,快来抽取限量HarmonyOS专属头像!

    本次ArkUI开发趣味体验活动,将手把手教大家如何在IDE里实操一个ArkUI程序,通过补充缺失代码,成功运行程序开启抽奖功能,抽取个人专属头像,做HarmonyOS第一批数字藏品家! 同时本期提供的 ...

  5. CentOS 7.9编译安装Python-3.10.13

    目录 查看CentOS版本.系统默认gcc版本.Python版本和pip版本 部署Python-3.10.13 测试 将yum中的Python版本修改为系统原来的2.7.5版本 查看CentOS版本. ...

  6. b站的视频进度条悬浮预览视频画面实现方式

    1.探究 在看b站视频,滑到进度条的时候突发奇想,想知道这个预览图是怎么做到的 打开控制台,发现每次移动鼠标悬浮位置的时候都会发出一条网络请求,并且该请求的size显示来源于内存,当时以为每次加载视频 ...

  7. 技术人如何"结构化"高效思考?

    1 前言 你是否在解决问题时,常常觉得脑子很乱,很多零散的信息迸发出来,但就是无法形成解决方案. 之所以这样,原因就在于,我们的大脑处理不了太多零散而复杂的信息.人类大脑在处理信息的时候,有两个规律: ...

  8. 为什么序列化要实现Serializable接口

    为什么实现了Serializable接口就会序列化? 实现了Java中的Serializable接口的类会被称为可序列化的,这意味着它们的实例可以被序列化为字节流,以便于在网络上传输.保存到文件中或者 ...

  9. DDD领域驱动设计总结和C#代码示例

    DDD(领域驱动设计)是一种软件设计方法,它强调以业务领域为核心来驱动软件的设计和开发. DDD 的设计初衷是为了解决复杂业务领域的设计和开发问题,它提供了一套丰富的概念和模式,帮助开发者更好地理解和 ...

  10. var ,let和const三者之间的区别

    var 声明变量可以被修改,可以被重复声明.有变量提升(写的位置和使用时候的位置不一样). let声明变量可以被修改,,但不能重复声明.如文件中有一个let a = 0;后面就不能在定义let a=* ...