怎样用C语言实现删除一个文件中的重复的字符窜

wuhanlucsdn wuhanlucsdn 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
用C语言写个文字处理工具把以下文件里面每行中含有“drive”或“receive”或“detector”的所在行中双引号里面的那个NODE名字提取出来存到一个文件中.在下面已有的C程序基础上添加一些代码,怎么才能把存取的文件里面相同的NODE名字删掉,只保留一个.

文件:


!!!! 10 0 1 1460031171 0000
global
relay
wire "GND" to 21850 general
wire "RSP_IM_SENSE_L" to 21851 general
end relay


test analog "c723"

wire "LIU_TX_TIP_P1" to 21773 s
wire "LIU_TX_TIP_AC_P1" to 221148 i
end test

test analog "c724"

wire "LIU_TX_TIP_P3" to 221174 s
wire "LIU_TX_TIP_AC_P3" to 22254 i
end test

test analog "c725"

wire "LIU_TX_TIP_P6" to 222155 s alternate
wire "LIU_TX_TIP_AC_P6" to 22255 i
end test



test analog "t6%jp21"

wire "TX_RING_P42" to 221109 s
wire "TX_TIP_P42" to 220108 i
end test

test analog "t6%jp22"

wire "TX_RING_P41" to 219105 s
wire "TX_TIP_P41" to 22008 i
end test

test analog "t6%jp23"

wire "RX_RING_P41" to 216105 s
wire "RX_TIP_P41" to 21705 i alternate
end test


subtest "VP1P0"
wire "VP1P0" to 21513 detector high
wire "GND" to 21955 detector low
end subtest

subtest "VP0P75"
wire "VP0P75" to 210136 detector high
wire "GND" to 21064 detector low
end subtest

subtest "1V8_AD9554"
wire "1V8_AD9554" to 20813 detector high
wire "GND" to 21064 detector low
end subtest


test analog "u2333"
functional

subtest "Pin1_offset"
wire "CLK_19M44_TCXO_REF_P" to 20734 detector high
wire "GND" to 21064 detector low
end subtest

subtest "Pin1"
wire "CLK_19M44_TCXO_REF_P" to 20734 receive frequency
end subtest
end test

test analog "y3"
functional

wire "CLK_20M_TCXO" to 214134 receive frequency
end test



test digital "u1"
timing module 2
clock internal

wire "IM_I2C_INT_OUT_L" to 20955 drive
wire "IM_I2C_SCL" to 208137 drive
wire "IM_I2C_SDA" to 20837 drive
wire "QUACK_RESET_L" to 20834 drive
wire "RSP0_I2C_SCL" to 207149 drive
wire "RSP0_I2C_SDA" to 208148 drive
wire "RSP1_I2C_SCL" to 20747 drive
wire "RSP1_I2C_SDA" to 20744 drive
wire "RSP_IM_MUX_RST_L" to 20727 drive
wire "IM_I2C_SCL" to 208137 receive
wire "IM_I2C_SDA" to 20837 receive
wire "RSP0_I2C_INT_L" to 20753 receive
wire "RSP0_I2C_SDA" to 208148 receive
wire "RSP1_I2C_INT_L" to 20951 receive
wire "RSP1_I2C_SDA" to 20744 receive
end test

test digital "u3"
timing module 2
clock internal

wire "$12N395" to 21048 drive
wire "BOARD_I2C_SCL" to 21041 drive
wire "FPGA_SPI_CS_L" to 20947 drive
wire "FPGA_SPI_HOLD_L" to 20538 drive
wire "FPGA_SPI_MOSI" to 20841 drive
wire "FPGA_SPI_SCLK" to 20838 drive
wire "FPGA_SPI_WP_L" to 21127 drive
wire "FPGA_SPI_MISO_ST" to 20842 receive
end test



已有的C程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
FILE *fp1;
FILE *fp2;
fp1=fopen("src.txt","r");
fp2=fopen("生成.txt","w");
if(NULL==fp1)
{
printf("未发现原文件!!!\n");
exit(-1);
}
if(NULL==fp2)
{
printf("目标文件打开失败!!!\n");
exit(-1);
}
const char* Key[] = {"drive","receive","detector"};
char buf[1024] = {0};
char* p1 = NULL;
char* p2 = NULL;
int i;
while(!feof( fp1 ) )
{
memset(buf,0,sizeof(buf));
fgets(buf,sizeof(buf)-1,fp1);
for(i=0;i < sizeof(Key)/sizeof(char*);++i)
{
p1=strstr(buf,Key[i]);//对比关键字是否存在
if(NULL != p1)
{
p1 = strstr(buf,"\"");//查找第一个引号
if(NULL != p1)
{
p2 = strstr(++p1,"\"");
if(NULL != p2)
{
*p2 = '\0';
fprintf(fp2,"%s\n",p1);
}
}
}
}
}
fclose(fp1);
fclose(fp2);
return 0;
}
...全文

相关推荐

c语言删除字符串中指定的所有字符

速度很快的哦,在windows 和 linux 下都经过测试了,可以放心使用,没有bug

wt123379493

C语言实现的重复数据删除技术源代码分析与应用

重复数据删除(Deduplication)技术是指在数据存储过程中,删除冗余的数据块,只保留唯一数据的副本,以提高存储效率和减少存储成本。这种技术特别适合处理大量的重复数据,如虚拟环境、电子邮件备份、文档存储等。在开始深入源代码之前,我们需要对重复数据删除算法有一个全面的了解。这包括算法的设计思路、效率考量以及如何在实际项目中运用这些算法。一个典型的重复数据删除系统可能包含以下功能模块:数据采集模块:负责从原始数据源中收集数据块。预处理模块。

Fkvision

C编程中常见的几种删除重复字符或者数字的方法

1.从键盘任意输入一个字符串,调用函数f(x),对字符串按从小到大排序,并删除重复字符,然后将处理后的字符串输出。 2.还有两个类似的程序,删除字符里的数字

afei0514

去掉重复的字符串及在第一个字符串中删除在第二个字符串中出现的字符

去掉重复的字符串及在第一个字符串中删除在第二个字符串中出现的字符两个程序,vs2013已经验证

beihang2012

按照字符串顺序从小到大排序,删除重复字符

从键盘接收一个字符串。然后按照字符串顺序从小到大进行排序,并删除重复字符

GANYOUQUAN
评论 5
收藏 已收藏
分享
返回顶部
wuhanlucsdn
C语言 70,039 成员 243,237 内容