prism

C语言使用cJson库解析json

自古美人都是妖i 提交于 2020-04-12 07:36:38
使用C语言解析json cjson库 cjson对象类型与结构体 cjson的几个常用接口 对cjson库进一步封装 调用测试案例 cjson库 在github或gitee上cjson,使用库中的 cJSON.c 与 cJSON.h 即可。 以下是我使用cjson的案例仅供参考。 我的cJosn使用案例 cjson对象类型与结构体 /* cJSON Types: */ #define cJSON_Invalid (0) #define cJSON_False (1 << 0) #define cJSON_True (1 << 1) #define cJSON_NULL (1 << 2) #define cJSON_Number (1 << 3) #define cJSON_String (1 << 4) #define cJSON_Array (1 << 5) #define cJSON_Object (1 << 6) #define cJSON_Raw (1 << 7) /* raw json */ /* The cJSON structure: */ typedef struct cJSON { /* next/prev allow you to walk array/object chains. Alternatively, use GetArraySize

用 C 语言开发一门编程语言 — 字符串与文件加载

混江龙づ霸主 提交于 2020-04-12 07:32:53
目录 文章目录 目录 前文列表 字符串 读取字符串 注释 文件加载函数 命令行参数 打印函数 报错函数 源代码 前文列表 《 用 C 语言开发一门编程语言 — 交互式解析器 》 《 用 C 语言开发一门编程语言 — 跨平台的可移植性 》 《 用 C 语言开发一门编程语言 — 语法解析器 》 《 用 C 语言开发一门编程语言 — 抽象语法树 》 《 用 C 语言开发一门编程语言 — 异常处理 》 《 用 C 语言开发一门编程语言 — S-表达式 》 《 用 C 语言开发一门编程语言 — Q-表达式 》 《 用 C 语言开发一门编程语言 — 变量元素设计 》 《 用 C 语言开发一门编程语言 — 基于 Lambda 表达式的函数设计 》 《 用 C 语言开发一门编程语言 — 条件分支 》 字符串 每次我们更新程序并重新运行的时候,重新输入所有函数令人苦恼。在本章中,我们将为 Lispy 添加从文件加载代码的功能。该功能让我们建立一个标准库。 当用户加载文件时,我们需要其提供一个由文件名组成的字符串。我们的语言现在支持符号类型,但仍然不支持包含空格以及其他字符的字符串类型。所以,我们需要添加字符串类型的 lval 来指定我们所需的文件名。 像在其他章节中一样,我们通过在枚举中添加新条目并添加新的 lval 来表示字符串类型的数据: enum { LVAL_ERR , LVAL_NUM ,

PyQt5多个GUI界面设计

╄→尐↘猪︶ㄣ 提交于 2020-04-11 19:29:19
版权声明:本文为博主原创文章,转载 请注明出处: https://blog.csdn.net/sc2079/article/details/90454379 - 写在前面   本科毕业设计终于告一段落了。特写博客记录做毕业设计(路面裂纹识别)期间的踩过的坑和收获。希望对你有用。   目前有:     1. Tensorflow&CNN:裂纹分类     2. Tensorflow&CNN:验证集预测与模型评价     3. PyQt5多个GUI界面设计      本篇讲GUI界面的设计。设计目标:实现用户对路面裂纹快速检测与识别,有三个界面:主界面、裂纹快速识别界面、图像处理测试界面。 - 环境配置安装   运行环境:Python3.6、Spyder、Qt Designer   依赖的模块:PyQt5、mysql等   值得注意的是:我安装PyQt5模块时,按照网上方法,如下: pip install PyQt5 pip install PyQt5 - tools   却发现找到Qt Designer的应用程序,(其实是有的,在C盘的某个角落,可以用everything小工具可以找到)。   于是乎,我就直接使用了PyQt5运行环境合集,内含Qt Designer(主要用来设计界面以及UI文件转换成PY)。   下载地址如下: WinPyQt5.9-32bit-3.5.3.1 -

2020网易笔试第四题

倾然丶 夕夏残阳落幕 提交于 2020-04-11 18:08:39
题目描述 英雄与怪兽。更新二维数组中的值 n*m的地图上,每个位置值为0或1,0表示怪兽,1表示英雄,对于每个英雄求出离他最近的怪兽的距离是多少,矩阵中每个位置离上下左右的距离都是1,若当前位置是怪兽,输出0即可,题目保证至少存在一只怪兽 输入:第一行输入两个正整数 ,n,m 接下来n行,每行输入m个数,从{0,1}中取值。表示每个位置的属性,其中1<=m,n<=1000 例子: 3 3 1 0 1 0 1 0 1 0 1 输出更新后的矩阵。输出n行,每行m个用空格分隔的数字表示答案。注意行末没有空格 例子 1 0 1 0 1 0 1 0 1 解题思路 1、深度优先遍历,返回四个方向的最小值 2、用一个数组tmp标记是否访问过 3、如果访问到边界值或者已经访问过的,则将路径长度置为n*m 自测代码(不知道能不能100%AC) import java . util . Scanner ; public class Main { public static void main ( String [ ] args ) { Scanner sc = new Scanner ( System . in ) ; int n = sc . nextInt ( ) ; int m = sc . nextInt ( ) ; int [ ] [ ] num = new int [ n ] [ m ]

看了就懂的Promise和回调函数

三世轮回 提交于 2020-04-11 17:59:03
文章导航 回调函数 (callback) 什么是回调函数? 为什么要使用回调 Promise Promise是什么? Promise的三种状态 Promise链式调用 回调函数 (callback) 什么是回调函数? 被作为实参传入另一函数,并在该外部函数内被调用,用以来完成某些任务的函数,称为回调函数 也就是说回调函数是一个函数,作为 参数 传给另一个 JavaScript 函数,回调函数将会在这个函数执行完成后立即执行。回调函数是在传给的函数内部被调用执行的。 示例 // 回调函数 function callback ( param ) { console . log ( 'I am callback! param: ' , param ) } // 函数 function myFunc ( param , callback ) { setTimeout ( ( ) => { callback ( param ) //执行回调函数 } , 2000 ) } myFunc ( 1 , callback ) //等待2秒后:I am callback! param: 1 为什么要使用回调 示例 立即执行函数: 下面的两个函数都是立即执行的,能够正确的返回结果 function getInfo ( ) { return 'I am Ryan' } function showInfo

JS对象—1.包装函数(String,Number,Boolean)

断了今生、忘了曾经 提交于 2020-04-11 17:54:28
一 . String对象 charAt ( index ) 返回指定位置的字符 charCodeAt ( index ) 返回指定位置字符的编码 indexOf ( str ) 字符串值首次出现的位置 lastIndexOf ( str ) 字符串值最后出现的位置 concat ( str ) 连接两个字符串 trim 去除两边空白 slice ( start , [ end ] ) 从指定起始和结束位置提取字符串 ( 可为负数 ) split ( str / reg [ , maxLen ] ) 分割为字符串数组 , 当为 substr ( start , num ) 从指定起始位置提取指定长度的字符串 substring ( start , [ end ] ) 从指定起始和结束位置提取字符串 toLowerCase 转小写 toUpperCase 转大写 match ( str / reg ) 找到所有匹配值 ( 字符串会被转正则 , 匹配特殊符号需注意 ) search ( str / reg ) 找到匹配值的位置 ( 字符串会被转正则 ) replace ( str / reg , newStr ) 替换匹配值 ES6 提供方法 : includes ( str ) 判断是否包含子字符串 startsWith ( str ) 判断是否以指定字符串开头 endsWith (

CF-Kate and imperfection

試著忘記壹切 提交于 2020-04-11 17:45:50
题目来源 : Codeforces Round #632 (Div. 2) 题目链接 : F. Kate and imperfection 大致题意 给出一个数n,S为从1到n的集合,寻找长度为2,3,4…一直到长度为n的子集中任意两个数的最大公约数的最小值。举个例子有一个集合{2,4,6,9},它的值就应该为6和9的最大公约数3,而它的长度为2的子集的最大公约数的最小值可以选子集{4,9},这样就是1。 思路 强行找的话肯定会超时,因此我们先研究一下这个规律。假设n等于10的时候,长度为2的子集 肯定选最大公约数为1的两个数,任选10一下的两个素数组成的子集,答案为1;长度为3的子集依然选3个素数,答案还是1…一直到长度为6的时候,先选1,2,3,5,7,发现没有素数了于是从最大公约数最小的开始选也就是从4开始选,答案为2. n=10时 n 所选子集 答案 2 1,2 1 3 1,2,3 1 4 1,2,3,5 1 5 1,2,3,5,7 1 6 1,2,3,5,7,4 2 7 1,2 ,3,5,7,4,6 3 8 1,2,3,5,7,4,6,9 3 9 1,2,3,5,7,4,6,9,8 4 10 1,2,3,5,7,4,6,9,8,10 5 所以n等于10 的时候答案为1 1 1 1 2 3 3 4 5 这样模拟一遍可能看不出什么,但是你从后往前看,也就是用 逆向思维 。

雨课堂毛概刷课脚本

萝らか妹 提交于 2020-04-11 17:38:21
雨课堂刷课脚本 最近在上毛概网课,老师不直播,发那种带语音的ppt,想了想写了一个刷课用的,别喷了( 我知道写的贼烂  ̄  ̄)σ 凑合用吧 代码: var lis = document . getElementsByClassName ( "page-no" ) ; console . log ( lis ) ; var x = 0 ; setInterval ( function ( ) { lis [ x ] . click ( ) ; x = x + 1 ; if ( x == lis . length ) x = 0 ; } , 3000 ) ; 用法: 在这个界面, F12,console中粘贴上面代码,3000是3s一跳,也可以自己调,然后回车就行 效果图: ` 来源: oschina 链接: https://my.oschina.net/u/4387051/blog/3229408

你品,你细品AJAX

不羁岁月 提交于 2020-04-11 17:38:03
一篇文章带你入门AJAX 概述 异步和同步 原生JS实现方式 JQuery实现方式 $.ajax $.get $.post 本文是本人自学前端时,简单入门时的一些总结,如有错误和更好的意见,欢迎大佬提出。 思维导图: 概述 ASynchronous JavaScript And XML异步的JavaScript和Xml Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术 异步和同步 同步: 客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作 异步: 客户端不需要等待服务器端的响应。在服务器请求处理的过程中,客户端中可以进行其他的操作 为了更近一步了解到异步与同步的区别: 就是比如在搜索框里搜索东西时会有推荐信息,那个就是异步,只是将需要的东西获取(局部刷新),而不是刷新整个页面。 原生JS实现方式 //1.创建核心对象 var xmlhttp ; if ( window . XMLHttpRequest ) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest ( ) ; } else { // code for IE6, IE5 xmlhttp = new ActiveXObject ( "Microsoft.XMLHTTP" ) ; } //2

Codeforces 1333 F. Kate and imperfection

守給你的承諾、 提交于 2020-04-11 17:37:38
题意: 在集合 S = 1 , 2 , ⋯ , n S={1,2,⋯,n} S = 1 , 2 , ⋯ , n 中,对于每个正整数 k k k ,找出一个大小为 k k k 的子集,使得该子集中两两间最大公因数的最大值最小,求这个最小值。 我们考虑如何构造两两间最大公因数的最大值最小的集合,首先肯定是把所有质数先丢进集合里,然后再把与已经在集合内的数的最大公因数 = 2 =2 = 2 的数丢进去,然后是 = 3 =3 = 3 的数……然后注意到,如果我们加入了一个合数,那么他的所有因子必定已经在集合内了,于是加入的这个数字能够产生的最大公因数就是他的最大因子,因此用埃筛维护这个贪心的过程,排序一遍输出即可。 AC代码: int n , m ; int main ( ) { sd ( n ) ; vector < int > ans ( n + 1 , 1 ) ; //ans包含n+1个值为1的元素。 rep ( i , 2 , n ) { for ( int j = 2 * i ; j <= n ; j + = i ) { ans [ j ] = i ; } } sort ( ans . begin ( ) , ans . end ( ) ) ; rep ( i , 2 , n ) printf ( "%d%c" , ans [ i ] , i == n ? '\n' : ' '