当前位置: 首页谁能用C语言编写记事本程序 请帮个忙谢谢了!急用
后台-插件-广告管理-内容页头部广告(手机)

谁能用C语言编写记事本程序 请帮个忙谢谢了!急用

作者:未知侠名时间:2022-11-26 22:41:06
#include #include void decToHex(int num) { int i,a,j; char s[8]; j=0; if(num==0) {s[j]='0';j++;} for(i=num;i>0;i=i/16) { a=i%16; if(a>=0xa && a<=0xf) s[j]=a+55; /*a=10时,'A'==65,'A'=a+55*/ else s[j]=a+'0'; j++; } s[j]='\0'; printf("to Hex:"); for(i=strlen(s);i>=0;i--) printf("%c",s[i]); printf("\n"); } void main() { int a; printf("please input DEC:"); scanf("%d",&a); decToHex(a); } #include#include #include #include #include #define null 0 #define max 100 typedef struct lnode{ char date[max]; //存放数据 struct lnode * prior ; //前驱 struct lnode * next ; //后继 int number ; //记录一个节点的字符数!如果是头节点就记录他的节点个数 int quese ; //记录节点在链表中的位置 }lnodetype; lnodetype * l ; //设置两个全局变量,分别是头节点指针和尾节点指针 lnodetype * end ; //**********这个函数是用来初始化的**********// int iniatelist (lnodetype ** l , lnodetype ** end) { (*l) = (lnodetype *)malloc (sizeof (lnodetype) ) ; if ( (*l) == null ) { printf ("没有只够的内存空间!程序即将退出!"); return 0 ; } (*l)->prior =(*l)->next = null ; //这是双链表 (*l)->number = (*l)->quese = 0; (*end) = (*l) ; printf ("程序初始化完毕!"); return 0; } //**********这个函数是用来建立节点,并且插入元素的**********// int link(lnodetype ** l, lnodetype ** end) { lnodetype *s ; s = (lnodetype *)malloc ( sizeof (lnodetype) ) ; if ( s == null ){ printf ("内存空间不够,程序即将退出!") ; return 0 ; } (*end)->next = s ; s->prior = (*end) ; (*end) = (*end)->next ; (*l)->number++ ; //增加一个节点,头节点的number就加1 s->quese = (*l)->number ; //这个是记录节点在链表中的位置 printf ("%d行", s->quese ) ; //这个是节点在整个链表中的位置 gets(s->date) ; s -> number = strlen(s->date) ; return 0 ; } //**********这个是打印链表的函数**********// int prin (lnodetype ** l, lnodetype ** end) { lnodetype * p ; int i ; int j = 0; int couter = (*l)->number ; p = (*l)->next ; for (i=0; i < couter; i++){ printf ( "%d行" , i+1 ) ; j = 0; while ( ( p->date[j]>='a' && p->date[j]<='z') || (p->date[j]>='a' && p->date[j]<='z') || p->date[j]>='0' && p->date[j]<='9') { printf ( "%c" , p->date[j] ) ; j++ ; } printf ("n") ; p = p->next ; } return 0 ; } //*********这个查找和编辑相应行的函数**********// int search (lnodetype ** l, lnodetype ** end ) { int number ; scanf ("%d" , &number) ; int i ; lnodetype * p ; p = (*l)->next ; for ( i=0; i p = p->next ; printf ("%d行" , number ) ; gets (p->date) ; return 0 ; } //**********这个是在文本文件里搜索字符串的函数**********// int searchstr(lnodetype ** l , lnodetype ** end) { char ptr[100] ; int arrycouter ; int mystrcmp( char *, char * , int ) ; printf ( "ok!现在输入你查找的字符串!" ) ; scanf ( "%s" , ptr ) ; arrycouter = strlen (ptr) ; lnodetype * s ; s = (*l)->next ; char * p ; int i = 1 ; int couter = 0 ; int number = (*l)->number ; p = (char *)s->date ; while ( i && number ){ // i=1是,证明没有找到,向第二个节点继续寻找 while ( i && ( ( (*p >= 'a') && (*p <= 'z') ) || ( (*p >= 'a') && (*p <= 'z') ) ) ){ i = mystrcmp ( p , ptr , arrycouter ); if ( i == 1 ){ printf ("字符串已经在第%d行,第%d个字符开始,",s->quese, couter+1 ); i = 0 ; } else { p++ ; couter++; i = 1 ; } } s = s->next ; p = (char *)s->date ; number -- ; } if ( i == 1 ) printf ("字符串在本文档中不存在!"); return 0 ; } //**********(1)这个函数是用来实现退出不保存功能的**********// int exitunsave(lnodetype ** l, lnodetype ** end) { lnodetype * s ; while( (*l) != (*end) ){ //如果不保存的话,最好是把节点的空间都释放,节省空间 s = (*end) ; (*end) = (*end)->prior ; free( s ) ; } return 0 ; } //**********(2)这个函数是用来实现退出但保存功能的**********// int quitandsave( lnodetype ** l , lnodetype ** end ) { file * fp ; char ch ; char filename[20] ; lnodetype * p; int i ; int j ; int couter = (*l)->number ; p = (*l)->next ; printf ("请输入文件名:") ; scanf ("%s" , filename ) ; if ( (fp = fopen( filename , "w" )) == null ){ printf ("文件不能打开!n"); return 0 ; } for ( i=0; i ch = p->date[0] ; j = 1 ; while (ch != '\0'){ fputc (ch , fp) ; ch = p->date[j] ; j++ ; } p = p->next ; fputc ( '#' , fp ) ; //注意在每个节点的后面加上结束的符号 } fputc ( '@' , fp ) ; //整个文件关闭的标志 fclose ( fp ) ; //注意关闭文件, return 0 ; } //**********由于库函数比较字符串提供的功能不满足要求,故自己写了一个**********/ int mystrcmp( char * p ,char * sour ,int number ) { while ( number && (*p) == (*sour) && ( ( (*p >= 'a') && (*p <= 'z') ) || ( (*p >= 'a') && (*p <= 'z') ) )){ p++ ; sour++ ; number-- ; } if ( number == 0 ) return 1 ; else return 0 ; } //**********这个函数是用来实现统计字符串功能的**********// int coutword(lnodetype ** l , lnodetype ** end) { //考虑到只统计一行的单词没有意义,故统计整个文本 int yes = 1 ; //这个是进入单词的标志 int no = 0 ; //在单词外面的时候的标志 int i , j ,inaword ,count = 0 ; inaword = no ; lnodetype * s = (*l)->next ; for (j=0; j<(*l)->number; j++){ for ( i=0; (s->date[i]>='a' && s->date[i]<='z') || (s->date[i]>='a' && s->date[i]<='z') || (s->date[i]>='0' && s->date[i]<='9' ) || (s->date[i]==' '); i++ ) { if ( s->date[i] == ' ' ) inaword = no ; else if ( inaword == no ) { inaword = yes ; count++ ; //计算单词 } } s = s->next ; inaword = 0 ; //注意这里,把标志置为0了! } printf ( "n文本一共有 %d 行" , (*l)->number ) ; printf ("n此文本一共有 %d 个单词!" , count ) ; return count ; } //**********这个函数是用来实现计算文本行数功能的**********// int linecouter(lnodetype ** l , lnodetype ** end ) { int couter ; couter = (*l)->number ; return couter ; } //**********这个函数是整和一上所有功能的菜单函数**********// int editmenu(lnodetype ** l , lnodetype ** end ) { char choice ; char * p = "cls" ; int i = 1 ; //这两个变量是用来控制循环的 int j= 1 ; system (p) ; prin (&(*l) , &(*end)) ; while (j){ printf ("*********************************** e: 编辑相应行 *************************************n") ; printf ("*********************************** s: 搜索字符串 *************************************n") ; printf ("*********************************** t: 统计单词个数 ***********************************n") ; printf ("*********************************** q: 退出编辑 ***************************************n") ; scanf("%c",&choice); scanf("%c" , &choice) ; //????莫名其妙的问题,非要两个请求输入语句才肯停下来! switch (choice) { case 'e' : { i = 1 ; while (i) { search( &(*l) , &(*end) ); system (p) ; prin( &(*l) , &(*end) ) ; printf ("n1 继续编辑 0 结束编辑n") ; scanf ("%d" , &i) ; } } break; case 's' : { i = 1 ; while (i) { searchstr( &(*l) , &(*end) ); getchar(); getchar(); system (p) ; prin( &(*l) , &(*end) ) ; printf ("n1 继续搜索 0 结束搜索n") ; scanf ("%d" , &i) ; } } break; case 't' : { coutword ( &(*l) , &(*end) ) ; getchar() ; }break; default : return 0 ; } system (p) ; prin( &(*l) , &(*end) ) ; printf ("n1 回到编辑菜单 0 结束编辑n") ; scanf ("%d" , &j) ; if (j == 1) system (p) ; else return 0 ; } return 0 ; } //**********实现第一个模块:新建空白文档**********// int newtext( lnodetype ** l ,lnodetype ** end ) { printf ( "新文本文件:n" ) ; int i = 1 ; char judstr[max] ; lnodetype * temp ; char jud ; char * p = "cls" ; while ( 1 ){ link( &(*l) , &(*end) ) ; jud = (*end)->date[0] ; if ( jud == '5' ){ //输入‘5’结束一切 temp = (*end) ; (*end) = (*end)->prior ; free (temp) ; while (1){ printf ( "******************************* out :退出不保存 ****************************n") ; printf ( "******************************* edit :编辑信息 *****************************n") ; printf ( "******************************* quit :退出而不存盘 **************************n") ; printf ( "******************************* qas :退出且存盘 ****************************n") ; printf ( "******************************* con :继续输入! *****************************n") ; gets(judstr) ; if ( !strcmp(judstr , "out") ) { exitunsave( &(*l) , &(*end) ) ; return 0 ; } else if ( !strcmp(judstr , "qas") ) { quitandsave( &(*l) , &(*end) ) ; return 0 ; } else if ( !strcmp(judstr , "edit") ) { editmenu (l , end) ; return 0; } system (p) ; } return 0 ; } } return 0 ; } //**********这个是装入文件的函数**********// int loadtaxt( char * filename ) { file * fp ; lnodetype * l ; char ch ; int i = 0 ; char * p = "cls" ; char judstr[max] ; lnodetype * head ; lnodetype * end ; iniatelist ( &head , &end) ; l = end = head ; if ( (fp = fopen( filename, "r+")) == null ){ printf ("文件不能打开!n") ; return 0 ; } ch = fgetc ( fp ) ; while ( ch != '@' ){ lnodetype *s ; s = (lnodetype *)malloc ( sizeof (lnodetype) ) ; if ( s == null ){ printf ("内存空间不够,程序即将退出!") ; return 0 ; } end->next = s ; s->prior = end ; end = end->next ; l->number++ ; s->quese = l->number ; printf ("%d行", s->quese ) ; while ( ch != '#'){ s->date[i] = ch ; ch = fgetc (fp) ; i++ ; } i = 0; while ( (end->date[i]>='a' && end->date[i]<='z') || (end->date[i]>='a' && end->date[i]<='z') || (end->date[i]>='0' && end->date[i]<='9' ) || (end->date[i]==' ') ) { printf ( "%c" , end->date[i] ) ; i++ ; } end->date[i] = '\0' ; //注意在节点的最好加上这个,以让退出保存功能函数知道此节点已结束 printf ( "n" ) ; i = 0; ch = fgetc ( fp ) ; } fclose (fp) ; printf ("n文件成功装入!n") ; while (1){ printf ( "******************************* out :退出不保存 ****************************n") ; printf ( "******************************* edit :编辑信息 *****************************n") ; printf ( "******************************* qas :退出且存盘 ****************************n") ; printf ( "******************************* con :继续输入! *****************************n") ; scanf("%s",judstr); if ( !strcmp(judstr , "out") ) { exitunsave( &l , &end ) ; return 0 ; } else if ( !strcmp(judstr , "qas") ) { quitandsave( &l , &end ) ; return 0 ; } else if ( !strcmp(judstr , "edit") ) { editmenu (&l , &end) ; return 0 ; } system (p) ; } return 0 ; } //**********主函数**********// void main ( void ) { //iniatelist (&l , &end) ; //newtext(&l , &end) ; char filename[max] ; scanf ( "%s" , filename ) ; loadtaxt( filename ) ; }
    站长提醒大家:以上内容,未识真伪,仅供参考。理性上网,以免过度。谨慎广告,危及钱财。
版权声明:本信息由系统自动搜集网络信息,本站尊重网络信息的版权问题,本站所有内容仅供学习使用,版权归原作者所有,若有来源错误或者侵犯您的合法权益,您可通过邮箱与我们取得联系,我们将及时进行处理。

奶奶在山里采了个菇,有点像灵芝,想请专业的人帮忙看看是不是灵芝,谢谢!照片是这个灵芝干了后拍的

这个是老牛干,学名叫树舌。能治肝病,提高抵抗力,并有抗癌,防癌的功效。不过用的不多,人都不认,不如灵芝有名。卖的也很便宜。你是指老的武进汽车站吗?那个就在常州新客运中心的西边
2022-11-26 20:05:49
奶奶在山里采了个菇,有点像灵芝,想请专业的人帮忙看看是不是灵芝,谢谢!照片是这个灵芝干了后拍的

上高铁学校一年多少钱

建议你亲自去学校问一下 或者是打电话到学校咨询一下 因为学校有一年收多少学费的标准 希望对你有所帮助2016衡阳高铁学校招生信息, 可上学校招生网查看。 或直接询问学校
2022-11-25 00:07:09
上高铁学校一年多少钱

财务管理毕业论文怎么写?看了好久的资料还不会啊

论文在写作上可以分三步走,第一,就是确定选题,这是写论文的关键,题目确定了方能进行后期的工作;第二,列好大纲,在大纲的整理上一定要多参考前辈的论文,从中体会下什么是大纲,大纲应该
2022-11-23 04:54:05
财务管理毕业论文怎么写?看了好久的资料还不会啊

青岛地区,外地户口可以挂到到亲姐姐的户口里吗?如果可以挂靠,可以

这个是不能挂靠的,青岛没有这样一个落户的政策,只有夫妻投靠落户,父母投靠子女,子女投靠父母,买房落户,单位人才引进落户,个体纳税落户(纳税额达到一定程度以后可以落户)等等; 如果你
2022-11-19 22:58:57
青岛地区,外地户口可以挂到到亲姐姐的户口里吗?如果可以挂靠,可以

女生中分好看吗?

有的人好看,有的人不好看,因人而异。 自己中分一下,看一看。好看就中分,不好看再换个头型。不好好看留长就好看港真的,得看脸不一定,分人
2022-11-19 13:51:04
女生中分好看吗?

五年级下册人教版分数解方程加减 急急急急急!!!!!!!!

X-0.8X=6 12x-8x=4.8 7.5x2X=15 x-0.7x=3.6竹竿长(3/4+5/6)/(1-1/2) =19/12/(1/2) =19/6米 其他就容易多了、自己解
2022-11-17 03:04:34
五年级下册人教版分数解方程加减 急急急急急!!!!!!!!

大掌柜微信号是多少?我朋友圈里好多人在跟大掌柜卖货,比较喜欢她家的风格,衣服鞋子包包护肤什么都有,

微信上买东西前提是要有人看你的东西, 只在微信朋友圈内发表商品图片和文字的话, 就只有添加你的好友才可以看得到这个内容,这样的目标客户群体是非常小的,而且这里面几乎都是
2022-11-17 01:38:57
大掌柜微信号是多少?我朋友圈里好多人在跟大掌柜卖货,比较喜欢她家的风格,衣服鞋子包包护肤什么都有,

心情说说至自己?

一、淋过雨的空气,疲倦了的伤心,我记忆里的童话已经慢慢的融化。 二、因为不知道下辈子还能不能再遇见,所以这辈子拼命给你温暖,给你拥抱。 三、真正的爱情,是明明知道没有结
2022-11-16 06:02:31
心情说说至自己?

厦门有哪些环评公司?介绍的尽量详细一些吧,想在厦门找环评工作,不胜感激~~

有证吗? 我是11届的,专门学环评,报过考证,200个人15个人拿证,没有我,所以我从去年到今年都还没找到环评公司,除非有熟人,要不不可能的,劝你先考证,5月份好像有一场,好好看书吧。呵呵,告
2022-11-16 04:20:53
厦门有哪些环评公司?介绍的尽量详细一些吧,想在厦门找环评工作,不胜感激~~

语文粤教版必修3古诗词单元中所有用典的修辞手法及赏析

用典,是古诗词常见的一种修辞格。诗词用典时词语十分简约,这些包含着典故的词语的含义、内容十分丰富,下面用典分析不当的一项是 A. “纵豆蔻词工,青楼梦好,难赋深情。”化用杜
2022-11-16 00:28:01
语文粤教版必修3古诗词单元中所有用典的修辞手法及赏析

分类栏目

禁止搜索