社区
C语言
帖子详情
帮我看看,一个C的题目
llf_hust
2005-07-26 05:19:36
读取一个二进制文件, 将文件中相邻的重复字节合并为一个字节, 并输出到另一个文件中.
如 01 02 03 04 05 05 05 06 07 08 08 08 09 - > 01 02 03 04 05 06 07 08 09
...全文
261
16
打赏
收藏
帮我看看,一个C的题目
读取一个二进制文件, 将文件中相邻的重复字节合并为一个字节, 并输出到另一个文件中. 如 01 02 03 04 05 05 05 06 07 08 08 08 09 - > 01 02 03 04 05 06 07 08 09
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mic_c
2005-07-27
打赏
举报
回复
到处看看,到处学学,到处转转
99
2005-07-27
打赏
举报
回复
就是,楼主想干什么呐?
boxban
2005-07-27
打赏
举报
回复
原文件单行如下所示:
"在 C:\81536B25EC38CA52E1B07D4F42B2B3A7.dll 中发现 Trojan/PSW.Lineage.eg.Hook.b 病毒, 发现病毒"
输出到目标文件如下:
"C:\81536B25EC38CA52E1B07D4F42B2B3A7.dll Trojan/PSW.Lineage.eg.Hook.b"
这个程序该怎么写,给个思路
###将文件中相邻的重复字节合并为一个字节###
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"dll" "hook" 为什么没有变成“dl" "hok"呢?反倒是那些汉字全都丢掉了。楼主到底要实现什么?
KenYuan2016
2005-07-27
打赏
举报
回复
替换:
不知道文件的大小,所以
按定长读取到数组中,数组转换就比较简单了。
用循环.
zhousct
2005-07-26
打赏
举报
回复
读一个字节,写入文件,并保存起来,再读一个字节,先比较再觉得写入文件与否。
LoveYouJustOneDay
2005-07-26
打赏
举报
回复
原文件单行如下所示:
"在 C:\81536B25EC38CA52E1B07D4F42B2B3A7.dll 中发现 Trojan/PSW.Lineage.eg.Hook.b 病毒, 发现病毒"
输出到目标文件如下:
"C:\81536B25EC38CA52E1B07D4F42B2B3A7.dll Trojan/PSW.Lineage.eg.Hook.b"
这个程序该怎么写,给个思路
用宽字符
wchar_t
LoveYouJustOneDay
2005-07-26
打赏
举报
回复
罗来富看这个
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fp1, *fp2;
char ch, pre;
fp1 = fopen("test", "wb");
while(1)
{
scanf("%d", &ch);
if(!ch) break;
fputc(ch, fp1);
}
fclose(fp1);
fp1 = fopen("test", "rb");
fp2 = fopen("test2", "wb");
ch=pre=fgetc(fp1);
fputc(ch, fp2);
while(1)
{
ch=fgetc(fp1);
if(feof(fp1))
break;
if(ch!=pre)
{
pre=ch;
fputc(ch, fp2);
}
}
fclose(fp1);
fclose(fp2);
system("PAUSE");
return 0;
}
softheaven
2005-07-26
打赏
举报
回复
// 本文来自铁道P246,;我不是想解决这道题的。我写了个摸拟的栈---类。
//还请高手修改一下不错之处,指点一下我在此编程中,暴露出的问题。谢了我先有礼了
//设计一个栈结构体的类,栈内存放的数据是三个字母的字符串(AAA,BCC,ABZ,KIS..)
//数据成员包括栈本身(stack),栈大小(size),及目前顶端位(top);
//成员函数则可以处埋栈内的数据引用,包括加入栈add(),从堆栈中删除delete(),
//检查堆栈是否已满IsFull(),检查堆栈是否已空等IsEmpty(),当然还有构造函数。
//测试时,可以写一段主程序main(),定义一个栈象,并对此对像做加入堆栈,
//删除栈的操作,提示:加入堆栈时,要考栈是否已满,且必须维护值保特在顶端的位置;
//删除栈时,则要考虑栈是否已空,并维护值在顶端位置
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#define FALSE -1
#define TURE 1
class stack
{
public:
stack(int sizeofstack);//构造函数
~stack();//析构函数
int ISFULL(class stack );
int ISEMPTY(class stack); //判断栈中是否为空
void COUTSTACKPT(class stack stacksample);//显示栈的内容
void ADD(char * str); //入栈操作
void POP(class stack stacksample); //弹栈操作
private:
char * stackpoint[20]; //指针数组
int size;
int top;
};
void stack::POP(class stack stacksample) //弹栈操作
{
if(ISEMPTY(stacksample)==FALSE)
{
top--;
}
}
void stack::ADD(char * str) //入栈操作
{
top++;
strcpy(stackpoint[top],str);
}
int stack::ISEMPTY(class stack stacksample)//判断栈是否为空
{
if(top>=0) {return FALSE;}
else {cout <<endl<<"stack is empty";return( TURE);}
}
void stack::COUTSTACKPT(class stack stacksample)//先判断后显示栈的内容
{
if( ISEMPTY(stacksample)==FALSE ) {cout<<stackpoint[top]<<endl;}
else {cout<<"the stack is empty"<<endl;}
}
stack::stack(int sizeofstack )//构造函数申请栈空间
{
int i;
top=-1;
for(i=0;i<sizeofstack;i++)
stackpoint[i]= (char * )new char [i][100];
}
stack::~stack()//析构函数
{
top=-1;
}
void main()
{
int i,stacksize;//初始申请栈的大小
char stacktemp[80];
cout<< "enter the stack's size please :";
cin>>stacksize;
stack t1(stacksize); //构造函数申请栈空间
t1.COUTSTACKPT(t1); //先判断后显示栈内容
for(i=0;i<stacksize;i++) // 入栈
{
cout<<" enter string please :";
cin>> stacktemp;
t1.ADD(stacktemp);
}
cout<<"Befor first pop"<<endl;
t1.COUTSTACKPT(t1);
t1.POP(t1);
cout<<"After pop"<<endl;
t1.COUTSTACKPT(t1);
t1.POP(t1);
cout<<"After pop again"<<endl;
t1.COUTSTACKPT(t1);
t1.POP(t1);
cout<<"After pop 3th"<<endl;
t1.COUTSTACKPT(t1);
t1.POP(t1);
cout<<"After pop 4th"<<endl;
t1.COUTSTACKPT(t1);
}
llf_hust
2005-07-26
打赏
举报
回复
原文件单行如下所示:
"在 C:\81536B25EC38CA52E1B07D4F42B2B3A7.dll 中发现 Trojan/PSW.Lineage.eg.Hook.b 病毒, 发现病毒"
输出到目标文件如下:
"C:\81536B25EC38CA52E1B07D4F42B2B3A7.dll Trojan/PSW.Lineage.eg.Hook.b"
这个程序该怎么写,给个思路
llf_hust
2005-07-26
打赏
举报
回复
哪个写出源代码来呀
LoveYouJustOneDay
2005-07-26
打赏
举报
回复
罗来富大哥
我说的对不对啊
LoveYouJustOneDay
2005-07-26
打赏
举报
回复
不相邻的更简单了
用一个数组
int hash[256];
memset(hash, 0, 256*sizeof(int) );
然后读取每一个字节( unsigned 类型读取) ch
if(!hash[ch])
输出到另外一个文件;
hash[ch]++;
最后各种字节出现的次数都统计下来了
jsjjms
2005-07-26
打赏
举报
回复
不知道是不是我没有考虑周全,没有看出特别 复杂的地方呀????
设一个临时变量,每次读取一个,拷贝一个副本到临时变量中,
继续读的时候与副本比较,相同丢弃,不相同写入。
firstdreamer
2005-07-26
打赏
举报
回复
mark
jixingzhong
2005-07-26
打赏
举报
回复
相邻的重复字节合并为一个字节
不考虑不相邻的重复情况的话
可以简单些
字节读取
判断比较
存入缓存
最后写入文件..
没有记错的话
楼主应该参加了一个 网络工程师 的面试了吧?
好象是的哦
呵呵
LoveYouJustOneDay
2005-07-26
打赏
举报
回复
设置一个 pre 标志
先读取第一个,并写入第二个文件
然后 pre = 第一个;
之后读取文件里剩下的所有字节
对于每个字节 now
{
if(now!=pre)
{
写入另外一个文件;
pre = now;
}
}
C语言试题汇总200例目录
1、温馨提示 C试题汇总里可用于计算机二级C语言笔试、机试、研究生复试中C程序设计科目、
帮
助C语言学者打好程序基础、C语言基础,锻炼您的逻辑思维和解决问题的能力,
帮
助你成为C语言笔试、机试解题高手,
帮
助你拿到C语言工作的offer,每
一个
题目
都附带源代码和运行结果,让你不再有任何困惑,妈妈再也不担心我的C语言了。如果程序有任何看不懂或者哪个步骤不理解的地方都可以加我微信(15874274916)私聊我,或者有更好的思路解决办法都可以加我微私聊,一起探讨、希望可以正真的
帮
助到你,同时也可以扫下面的二维码关注
【C语言】C语言入门经典
题目
(范围广,内容多)
✨作者:@小孙的代码分享 ✨专栏:《C语言入门》 ✨送给各位的一句话:空杯心态 才能学到新知 ✨希望大家看完这些
题目
有所收获,别忘了,点赞+评论! 目录 前言 😄 字符转ASCII码🔥 判断闰年🔥 简单计算器🔥 包含数字9的数🔥 十六进制转十进制🔥 获得月份天数🔥 求质数个数🔥 水仙花数🔥 变种水仙花🔥 公务员面试🔥 关机程序🔥 结束语 前言 😄 学了好久的C语言,最近也刷了200多到题,下面和大家分享一下我直接的一些入门的经典...
已完结:C语言经典100
题目
(满足所有C程序基础)
C语言基础100题,适合新手,编程初学者,编程爱好者。此100题涵盖了C语言基本的结构,算法,指针,结构体等,祝你在代码中旅途愉快!!! 100 basic C language questions, suitable for beginners, programming beginners, and programming enthusiasts. These 100 questions cover the basic structures, algorithms, pointers, structure
C语言常见
题目
汇总(不断更新)(建议收藏)
前言: C语言的常见题,对大家学习C语言会有一定的
帮
助,不断地会收录新题 没有对体型进行分类大家自行挑选对自己有用的
题目
eg 1.
100条经典C语言笔试
题目
100 条经典C语言笔试
题目
题目
来源: 1、中兴、华为、慧通、英华达、微软亚洲技术中心等中 外企业面试
题目
; 2、C 语言面试宝典(林锐《高质量编程第三版》)。 说明: 1、部分C 语言面试题中可能会参杂部分和C++ 相关的知 识,为了保持
题目
的灵活性故保留,但选题最终还是 会以C 语言
题目
为主体; 2、以上公司的面试
题目
已成为国内中小型企业公司出题 模板; 3
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章