- 博客(21)
- 收藏
- 关注
原创 关于文件操作的一些问题(C语言版)
fread和fgets的不同fread函数:size_t fread(void *ptr, size_t size, size_t nmemb, FILE stream);一次性从stream读入nmemb个size字节(含换行回车)到ptr中,如果不遇到文件结束,返回正确完整读取size字节的次数,如果遇到文件结束,那最后一次读取size次数就是0。比如:文件大小=55 size=10; nmemb=4;第一次读入:返回值=4第二次读入:返回值=1因为第二次完整读入size的次数是1(15个
2021-04-14 10:06:38 304 1
原创 关于linux下vi复制剪切粘贴的使用
vi的命令模式在命令模式下,yy复制当前行,nyy(n为整形数字)复制当前行往后的n行(包含当前行)v:进入字符选择模式,光标定位当前位置,按上下左右方向键选择字符文本y:复制p:粘贴dd剪切当前行,ndd(n为整形数字)剪切当前行往后的n行(包含当前行)v:进入字符选择模式,光标定位当前位置,按上下左右方向键选择字符文本d:剪切p:粘贴v:可以选择单个或多个字符V:只能一行一行选择注意:1、命令模式下p命令剪贴板的内容只限于本用户终端的最后一次通过命令模式下复制(y、yy)或剪切(
2021-04-11 13:38:29 1071
原创 关于递归和循环的使用(C语言版)
递归是数据结构里常见的,递归调用是通过内存的栈实现的,在调用函数时,系统会将被调函数所需的程序空间安排在一个栈中。每当调用一个函数时,就在栈顶为它分配一个存储区。每当从一个函数退出时就释放它的存储区,栈是采用先进后出(后进先出),当递归不断调用自己,最先调用的先入栈,后面依次调用的函数依次进入栈,最先入栈的位于栈底,最后入栈的栈顶,比如我们穿衣服,最先穿的内衣位于最里面,最后穿的外套位于最外面,脱衣服的最先脱外套,然后依次脱里面的,直至脱光。整个递归调用过程就是一次穿衣脱衣(入栈出栈)的过程。由于递归调用要
2021-04-05 19:33:56 1423
原创 C语言用socket通信在linux下实现简单的server端到client端的通信
C语言用socket通信在linux下实现简单的server端到client端的通信,涉及到多个client端的话,server端用子进程实现,client端的接收和发送分别用两个线程来实现。server.c#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <sys/types.h>#include <netine
2021-04-03 17:41:04 621
原创 gcc同时加载动态库和静态库
gcc编译时C程序时要涉及到加载动态库的情形,如果是动态库和静态库同时加载,应该如何加载呢?gcc -static -lib1 -lib2 -shared -lib3rdparty test.c -o test上面这种写法是不适合的,应该使用下面这种方法:gcc test.c -Wl,-Bstatic -lbar -lbaz -lqux -Wl,-Bdynamic -lcorge -o test加载静态库:-Wl,-Bstatic -lbar -lbaz -lqux加载动态库:-Wl,-Bdy
2021-04-03 17:27:14 1121
原创 数据结构:单向链表反转(C/C++)
单向链表在数据结构中比较常见,要求实现单向链表的反转,如下图所示:反转前:反转后:代码如下:#include <stdio.h>#include <stdlib.h>struct list{ int var; struct list *next;};//反转单向链表void reversal(struct list* &head){ struct list *p1,*pre,*after; p1=head; pre=head; head=h
2021-03-25 23:03:25 1761
原创 库函数实现:strcpy
C语言strcpy库函数实现,代码如下:char *strcpy(char *sTarget,char *sSource){ int iFlag; int iSource=0,iTarget=0; char *p = sTarget; while(*sSource){ *sTarget++ = *sSource++; } *sTarget = '\0'; return p;}
2021-03-17 01:14:59 174
原创 库函数实现:strstr,子字符串查找
算法题:实现strstr函数,子字符串查找,char *strstr(char *sSource,char *sTarget),在sSource中查找子串sTarget,能找到则返回sTarget子串,找不到返回NULL。C语言代码如下:char *strSearch(char *sSource,char *sTarget){ char *p = sTarget; while(*sSource && *sTarget){ if(*sSource == *sTarget){
2021-03-16 12:20:05 153
原创 算法题:校验字符串里每一个字符
接上一题,对字符串里的每一个字符进行校验,满足格式为两个数字和“加减乘除”运算符相间,例如:“1+3*5-7/8+9”。C语言代码如下:#include <string.h>#include <stdio.h>#include <stdlib.h>#define true 1#define false 0typedef int BOOL;int checkString(char *sInput){ int iLenInput; iLenInput
2021-03-14 16:32:57 345 1
原创 算法题:给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果
给定一个包含正整数、加(+)、减(-)、乘()、除(/)的算数表达式(括号除外),计算其结果。表达式仅包含非负整数,+, - ,,/ 四种运算符,数字只包含0-9,例如:1+3*5-7/8+9。 整数除法仅保留整数部分。C语言代码如下:#include <string.h>#include <stdio.h>#include <stdlib.h>// 按照加减乘除的逻辑先后运算int calc_logic(char *sInput){ int i,j=0,
2021-03-13 18:57:42 3376
原创 debian安装linux C/C++调试工具gdb
apt install gdb报错了,一些依赖的包没有安装,需要按照提示要求运行apt --fix-broken install安装依赖的包apt --fix-broken installapt install gdbgdb 进程名安装成功后就可以用:gdb 进程名 进行调试了...
2021-03-10 18:36:38 2105 1
原创 C语言代码:对于两列顺序递增数字数组,用链表形式实现合并递增输出
C语言代码:对于两列顺序递增数字数组,用链表形式实现合并递增输出说明:两个不定长的递增数组,要求用链表形式实现合并递增输出例如: int a[]={3,5,7};int b[]={2,4,6,8,9,10,13,16};输出:2 3 4 5 6 7 8 9 10 13 16代码:#include <stdio.h>#include <stdlib.h>#define true 1;#define false 0;typedef int bool;int ma
2021-03-10 18:02:30 513
原创 python读取excel文件源代码
需要安装xlrd库:pip install xlrd源代码如下:#!/usr/bin/pythonimport sysimport xlrdimport MySQLdbtry:#打开数据库连接db = MySQLdb.connect(host=“localhost”, user=“test”, passwd=“123456”, db=“test”, charset=‘utf8’)#db = MySQLdb.connect(IP, USERNAME, PASSWORD, DATABASEN
2021-03-08 17:05:07 813 1
转载 syntax error near unexpected token else
1:定义变量时, =号的两边不可以留空格. 这里不能添加的原因是 添加了空格一般是用来表示判断的eg:gender=femal------------rightgender =femal-----------wronggender= femal-----------wrong2条件测试语句 [ 符号的两边都要留空格 . //这条真的比较膈应人eg:if [ $gender = femal ]; then-------right.echo "you are femal";fiif[
2021-03-04 16:15:43 7369 1
原创 debian下安装mysql
debian下安装mysql快速安装:apt install mysql-client mysql-server手动安装若快速安装不成功可以手动安装,步骤如下:mysql官网下载 mysql 5.7.33版本的tar包:mysql-server_5.7.33-1debian10_amd64.deb-bundle.tar解压(安装文件及组件集合)debian官网下载libmecab2https://www.ubuntuupdates.org/package/core/xenial/univers
2021-02-07 18:13:36 506
原创 linux下mysql查看编译链接参数配置(C/C++)
mysql查看编译链接参数配置(c/c++ Makefile)命令:mysql_config --cflags --libs-I/usr/include/mysql-L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -lrt -latomic -lssl -lcrypto -ldl添加到Makefile里
2021-01-19 00:30:49 127
原创 关于debian系统下使用vi编辑语法不高亮的问题
debian的vi是vim.tiny的版本,是vim的简化版,不支持语法高亮需要安装vim的完全版命令:apt-get install vim
2020-12-29 21:52:25 249
原创 linux下tomcat启停及查看
启动tomcatbin目录下nohup ./startup.sh > /dev/null 2>&1 &—停止tomcatbin目录下./shutdown.sh更新html文件不需要重启tomcat。./catalina.sh version等同于 ./version.sh./catalina.sh startup等同于 ./startup.sh查看:ps -ef|grep tomcatnetstat -tnlp端口处于listen监听状态代表已启动..
2020-12-29 21:44:31 271
原创 ubuntu系统字符集查看及修改
ubuntu系统字符集修改:修改文件:/etc/default/locale修改完必须重启系统生效参考:https://www.jianshu.com/p/368b556a32c6字符集查看:locale 显示当前设置的字符集locale -a显示当前系统所支持的所有字符集...
2020-12-29 21:28:34 3493
原创 debian系统下安装c/c++编译器及帮助文档
debian系统下安装c/c++编译器及帮助文档:命令:apt-get [-y] install build-essential说明:-y 是同意的意思。没有 -y的命令也可以执行,系统会提示你是否安装,输入y,回车,就会安装了
2020-12-29 21:18:35 1894 1
原创 linux find命令的一些用法
找到当前目录下所有tmp开头(尾号数字累加目录)的目录,下面的xlsx文件find ./tmp? -name “*.xlsx”找到当前目录下,下面的xlsx文件和xls文件(-o -E 两种方式)find ./ -name “.xlsx" -o -name ".xls”find ./ -type f|grep -E ‘.xlsx|.xls’找到当前目录下所有tmp开头(尾号数字累加目录)的子目录,下面的xlsx文件和xls文件(-o -E 两种方式)find ./tmp? -name “.xls
2020-12-29 21:06:12 139
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人