单独写出一个函数出来,基本思想就是用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. Apache Maven ToolChains的使用

    目录 简介 Toolchains的介绍 Toolchains的例子 Toolchains支持 总结 简介 Maven是java中非常有用和常用的构建工具,基本上现在大型的java项目都是Maven和g ...

  2. OpenHarmony组件复用示例

      本文转载自<#2023盲盒+码# OpenHarmony组件复用示例>,作者zhushangyuan_ ● 摘要:在开发应用时,有些场景下的自定义组件具有相同的组件布局结构,仅有状态变 ...

  3. C++ 异常和错误处理机制:如何使您的程序更加稳定和可靠

    在C++编程中,异常处理和错误处理机制是非常重要的.它们可以帮助程序员有效地处理运行时错误和异常情况.本文将介绍C++中的异常处理和错误处理机制. 什么是异常处理? 异常处理是指在程序执行过程中发生异 ...

  4. C# 做个Splash(启动屏幕)

    现在有好些splash的做法,我的比较简单,而且如果你的素材不错的话,应该可以做出很好的效果,这个教程不依赖任何第三方控件,直接使用vs的就行了,下面这个是预览图: 正文开始: 我们首先新建一个win ...

  5. Windows编译PDF库:libharu

    libharu编译需要libpng,libpng依赖zlib,所以需要下载这三个库 libharu下载:http://libharu.org/ libpng下载:http://www.libpng.o ...

  6. Thymeleaf SSTI模板注入分析

    环境搭建 先搭建一个SpringMVC项目,参考这篇文章,或者参考我以前的spring内存马分析那篇文章 https://blog.csdn.net/weixin_65287123/article/d ...

  7. jenkins 持续集成和交付——pipeline(五)

    前言 整理一下pipeline. 正文 介绍 什么是pipeline呢? 根据前面的所得,我们知道,以前都是模板形式,但是如果有些复杂的项目,需要用更加自定义的写法,那么就有了pipeline,也就是 ...

  8. Bogus 实战:使用 Bogus 和 EFCore 生成模拟数据和种子数据【完整教程】

    引言 上一章我们介绍了在xUnit单元测试中用xUnit.DependencyInject来使用依赖注入,上一章我们的Sample.Repository仓储层有一个批量注入的接口没有做单元测试,今天用 ...

  9. Git中 fork, clone,branch

    一.是什么 fork fork,英语翻译过来就是叉子,动词形式则是分叉,如下图,从左到右,一条直线变成多条直线 转到git仓库中,fork则可以代表分叉.克隆 出一个(仓库的)新拷贝 包含了原来的仓库 ...

  10. Webpack中Loader和Plugin的区别?编写Loader,Plugin的思路?

    一.区别 前面两节我们有提到Loader与Plugin对应的概念,先来回顾下 loader 是文件加载器,能够加载资源文件,并对这些文件进行一些处理,诸如编译.压缩等,最终一起打包到指定的文件中 pl ...