![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
编程基础
编程基础知识。
羽墨志
不经历千百遍的调试,怎能体会成功时那一刹那的欢喜。
展开
-
Python | 删除指定文件下的所有文件和文件夹
#!/usr/bin/env pythonimport timeimport osimport shutilfilelist=[]rootdir="E:/mm618"filelist=os.listdir(rootdir)for f in filelist: filepath = os.path.join( rootdir, f ) if os.path.isfile(filepath): os.remove(filepath) print(time.strftime原创 2021-07-01 18:45:32 · 286 阅读 · 0 评论 -
C语言 | 学习C语言字符串数组,看这一篇就够了!
一、字符串的定义char *str1 = {"Hello world!"}; // 方式一 (可省略{})char str2[] = {"Hello world!"}; // 方式二 (可省略{})char str3[] = {'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!', '\0'}; // 方式三几种字符串定义方式之间的区别:(1) 方式一的本质是定义了一个char型指针str1, 指向的是字符串常量Hello wo原创 2021-06-05 16:01:31 · 13023 阅读 · 16 评论 -
C语言 | 保存数组到文件中
工作中有时候需要反复生成一些数组用于测试,手动生成实在不是个明智的选择。这个C语言小程序的功能是将生成的一位数组按照指定行数和列数保存到指定的文件中。/** ****************************************************************************** * @file data_saver.c * @brief Save the generated array data to the file. * @data 20原创 2021-04-26 17:34:48 · 6003 阅读 · 3 评论 -
C语言 | 文件的复制
/* * 复制一个文件到另一个文件中 * By 羽墨志@2021年3月31日 */#include <stdio.h>#include <string.h>void *get_filename(char *fullname);int copy_func(const char *src_file, const char *dst_file);int main(int argc, char *argv[]){ if(argc < 3) { fprin原创 2021-03-31 13:47:50 · 617 阅读 · 0 评论 -
C语言 | 计算程序运行时间
本程序可以用于评估算法程序在实际运行过程中所消耗的时间。在程序运行之前获取一次系统的时间戳,在程序运行结束后再获取一次系统的时间戳,两次时间戳之差即为当前程序运行所花费的时间。#include <stdio.h>unsigned long getTimeStamp(void);int main(int argc, char *argv[]){ unsigned long timeStmp = getTimeStamp(); printf("timeStmp = %d\r\n",原创 2021-01-17 22:57:40 · 751 阅读 · 0 评论 -
C语言 | 找出三个整数中的最大值以及最小值
/* * 找出三个整数中的最大值以及最小值 */#include <stdio.h>int get_max_value(int a, int b, int c);int get_min_value(int a, int b, int c);void test_func(void);void test_func(void){ int a = 1; int b = 2; int c = 3; printf("The max value of %d %d %d is %原创 2020-11-06 15:02:55 · 7033 阅读 · 0 评论 -
C语言 | switch 语句匹配字符串的方法
在某些情形下,我们需要根据一些已知的字符串进行相应的处理,比如根据从串口接收到字符串命令执行操作。假如要通过串口控制某个设备的开启、关闭以及查询等功能,其控制命令 cmd 分别为 OPEN、CLOSE、 和QUERY。利用C语言标准库函数 int strcmp(const char *str1, const char *str2) 来找出每一个控制命令,然后执行相应的操作:char cmd[10] = "OPEN";if (0 == strcmp("OPEN", cmd)){ devic原创 2020-09-29 14:34:38 · 23056 阅读 · 13 评论 -
Qt应用程序的发布及打包
一、构建Release版应用程序;以Release方式构建项目,生成的exe应用程序位于``CApp\build-CApp-Desktop_Qt_5_12_0_MinGW_64_bit-Release\release`目录下。二、发布Release版应用程序;上述步骤中构建的应用程序即使在本机也不能直接运行,因为还缺少必要的Qt库文件。利用Qt自带的工具windeployqt可以找出应用程...原创 2019-11-08 18:32:26 · 265 阅读 · 0 评论 -
混合编程初探:C++调用Python函数
准备工作新建一个控制台应用,写个简单的Hello World程序。环境配置C++调用Python脚本需要用到Python安装目录下的include、libs 以及相关的dll,因此需要把相应的路径添加到工程中。 如果libs文件夹下没有python36_d.lib文件,可复制python36.lib并重命名为python36_d.lib备用。添加头文件目录以及库文件目录在解决方案资源...原创 2019-10-24 21:14:48 · 456 阅读 · 0 评论 -
条件运算实现的简易计算器
/** For example:* input : 3*2 then press "Enter"* output: 13 * 25 = ?* 13 * 25 = 325*/#include <stdio.h>#include <math.h>#define ERROR -1int main(void){ char ch; int a,b,num;原创 2017-01-03 16:36:01 · 696 阅读 · 0 评论 -
C语言 | 复制文件内容并保存
读取文件内容并写入另一个文件。/** * @file : copy.c * @author : 羽墨志(https://yumozhi.com/) * @since : 2019年8月5日18:13:27 * @description : 文件复制 */#include<stdio.h>/** * @function : main * @author : 羽墨志(https://yumozhi.com/) * @since : 2019年8月5日18:1原创 2020-08-28 10:37:50 · 271 阅读 · 0 评论 -
C语言 | 数据转换
/* * 数据转换 * by 羽墨 @ 2020-8-6 */#include <stdio.h>unsigned int data_format(unsigned char *src);int main(int argc, char** ragv){ unsigned char arr[4] = {0x00, 0x00, 0x00, 0x02}; printf("result = %d\r\n", data_format(arr)); return 0;}/*原创 2020-08-06 10:18:16 · 164 阅读 · 0 评论 -
(直接)插入排序INSERT_SORT
一、伪代码/*INSERT_SORT(A)*/for j = 2 to A.length key = A[j] //Insert A[j] into the second sequence A[1..j-1]. i = j-1 while i>0 and A[j]>key A[i+1] = A[i] i = i-1A[i+1] = key原创 2016-10-05 20:52:06 · 2554 阅读 · 0 评论 -
数组的格式化输出
一、字符串的格式化输出void print_string(){ char str[] = {"This is a string!"}; char *p; p = str; //指针初始化 printf("The string = %s\n",str); printf("The string = %s\n",p);}二、一维整数数组的格式化输出void print_i原创 2016-10-05 17:11:42 · 9508 阅读 · 0 评论 -
sizeof获取数组长度
昨天开始看《算法导论》这本书,第一个算法就是(直接)插入排序,根据书里给出的伪代码写出了C语言代码,也根据自己的理解重新写了一个。虽然实现了算法的基本要求,但有些细节没有处理好,今天就来完善一下。在昨天实现的代码中,用来测试的数组intarray[]={5,2,4,6,1,3};是固定的,如果要更换待排序数组话,原来程序中的相关变量就会因为数组长度的改变要做相应的改变。我想要的就是给定任原创 2016-10-06 21:17:38 · 53835 阅读 · 3 评论 -
纠正对C语言指针的误解(一)
【问题由来】 请问如下代码段所实现的功能:int func(char* s){ char *t = s; while(*t++); return(t-s);}【答案】返回字符串s的长度。 产生误解的语句是char *t = s;。按照之前的理解,死扣指针定义,误以为是定义了一个char类型的指针并指向地址s,则应有*t = s,指针变量t中存放的是s的地址,原创 2017-03-14 23:42:56 · 652 阅读 · 0 评论 -
危险:行注释后面的行连接符
在实现ESP8266和CC2530之间的SPI通信时,ESP8266SPI通信例程中预先定义了一个数组uint32 sendData[8] = {0};用于存放要发送的数据,然后给其赋值。为了搞清楚发送的究竟是什么数据,于是对照ASCII码表找出相应的字符,并在对应行对应位置作了注释(事实证明,这种注释毫无意义!!!),其中就巧妙地包含了行连接符\(见图片中箭头指向的地方),默默地给自己挖了一个大大原创 2017-08-03 16:16:15 · 405 阅读 · 0 评论