单独写出一个函数出来,基本思想就是用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. #拓扑排序#洛谷 5157 [USACO18DEC]The Cow Gathering P

    题目 给出一棵树和一些限制关系 \((a_i,b_i)\), 一种合法的删点序列当且仅当删除一个点之后树的大小不超过 1 或不存在孤立点, 并且 \(a_i\) 要比 \(b_i\) 先删除,问 \( ...

  2. #排列组合#美团2018年CodeM大赛-决赛 A-Exam

    题目 分析 因为第一名所在的学校一定会发喜报, 所以只有一个学校发喜报说明其它学校都没有发喜报 钦定第一名所在的学校为1,总方案要乘\(n\),那么两个1之间不可能出现两个相同的学校的学生 那么可以分 ...

  3. #线性筛,斐波那契数列,GCD#BZOJ 2813 奇妙的Fibonacci

    题目 有一个斐波那契数列,满足 \[F_n=\begin{cases}1\qquad (n==1)\\1\qquad (n==2)\\F_{n-1}+F_{n-2}\qquad (n>2)\en ...

  4. #差分约束,SPFA#洛谷 1993 小 K 的农场

    题目 分析 对于描述1,也就是\((a,b,-c)\),\(b\)比\(a\)至多多\(-c\) 对于描述2,也就是\((b,a,c)\),\(a\)比\(b\)至多多\(c\) 对于描述3,也就是\ ...

  5. OpenHarmony中的HDF单链表及其迭代器

    概念 为了性能考虑,嵌入式系统一般使用C语言进行开发,由于C语言标准库没有封装链表,所以嵌入式系统一般自己设计和实现链表这种数据结构.单链表是链表中的一种,本文描述OpenAtom OpenHarmo ...

  6. 记录C++,读文件返回base64数据

    读文件返回base64函数: void CZZUser::hidFileToBase(const char* filePath) { // 文件 转 base64 // 计算文件长度 unsigned ...

  7. spring boot 配置文件占位符和多环境配置 [七]

    配置文件占位符 person.last-name=zhangsan person.age=${random.int} person.birth=2017/12/15 person.boss=false ...

  8. 重新整理数据结构与算法(c#)—— 二叉树排序树补删除节点[二十二]

    前言 续前一章. 正文 删除节点规则: 1.假如删除的是叶子节点,让他的父节点,断开和它的联系. 2.如果删除节点右左子树或者右子树的话,那么应该这样. 如果删除节点是它的父节点的左节点,而删除节点有 ...

  9. python实现不同颜色气球隔开摆放,并且提示不能摆放的情况

    这个是一位隐秘人物让我做的一道题(如标题),我也分享出来了. 首先是成品展示(暂时没有做成可视化界面的样子): 我做的是把所有的气球录入进来,然后利用基础数据结构(字典,数据等)排序等,由于我是初学, ...

  10. 在阿里巴巴,我们如何先于用户发现和定位 Kubernetes 集群问题?

    ​简介:本文整理自阿里云高级研发工程师彭南光(光南) 在 KubeCon China 2021 大会的演讲实录,分享了阿里巴巴是如何通过自研通用链路探测+定向巡检工具 KubeProbe 应对大规模集 ...