char函数

oracle笔记之计算年龄、工龄

落花浮王杯 提交于 2019-11-30 11:56:18
方法一:利用months_between 函数计算 SELECT TRUNC(months_between(sysdate, birthday)/12) AS age from dual; 方法二:日期转换为 'yyyyMMdd' 格式后,相差一年的两个日期差为:10000 select TRUNC((to_char(sysdate, 'yyyyMMdd') - to_char(birth, 'yyyyMMdd')) / 10000) as age from mytable 来源: https://www.cnblogs.com/Bokeyan/p/11582661.html

Flappy-Bird

房东的猫 提交于 2019-11-30 11:53:05
#include <curses.h> #include <stdlib.h> #include <signal.h> #include <sys/time.h> #define CHAR_BIRD 'O' #define CHAR_STONE '*' #define CHAR_BLANK ' ' typedef struct node{ int x, y; struct node *next; }node, *Node; Node head, tail; int bird_x, bird_y; int ticker; void init(); void init_bird(); void init_draw(); void init_wall(); void init_head(); void drop(int sig); int set_ticker(int n); int main() { char ch; init(); while(1) { ch = getch(); if(ch == ' ' || ch == 'w' || ch == 'W') { move(bird_y, bird_x); addch(CHAR_BLANK); refresh(); bird_y--; move(bird_y, bird_x); addch(CHAR_BIRD); refresh();

PCRE-正则库及用法

风格不统一 提交于 2019-11-30 10:12:23
摘自博客园:https://www.cnblogs.com/LiuYanYGZ/p/5903946.html 在C语言中利用PCRE实现正则表达式 1. PCRE简介   PCRE(Perl Compatible Regular Expressions即:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,由菲利普.海泽(Philip Hazel)编写。PCRE是一个轻量级的函数库,比Boost之中的正则表达式库小得多。PCRE十分易用,同时功能也很强大,性能超过了POSIX正 则表达式库和一些经典的正则表达式库 [1] 。 和Boost正则表达式库的比较显示 [2] ,双方的性能相差无几,PCRE在匹配简单字符串时更快,Boost则在匹配较长字符串时胜出---但两者差距很小,考虑到PCRE的大小和易用性,我们可以认为PCRE更值得考虑。 PCRE被广泛使用在许多开源软件之中,最著名的莫过于Apache HTTP服务器和PHP脚本语言、R脚本语言,此外,正如从其名字所能看到的,PCRE也是perl语言的缺省正则库。 PCRE是用C语言实现的,其C++实现版本是PCRE++。 2. 正则表达式定义   一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板

牛客 C++刷题day22

血红的双手。 提交于 2019-11-30 10:04:24
switch 语句中执行顺序: 如果某一个case中不加break,那么假如某一次切换到该case则按照语句顺序,执行接下来的所有case句子,直到遇到break,注意,switch语句中的语句顺序非常重要。 原子操作( Atomic operations)不可中断的一个或一系列操作。 标准库里面的string在多线程下并不保证是都是安全的,只提供两种安全机制: 1.多个线程同时读取数据是安全的。 2.只有一个线程在写数据是安全的。 局部变量局部使用是安全的 为什么?因为每个thread 都有自己的运行堆栈,而局部变量是生存在堆栈中,大家不干扰。 2.全局原生变量多线程读写是不安全的 , 全局变量是在堆(heap)中。 3.函数静态变量多线程读写也是不安全的。 4.volatile能保证全局整形变量是多线程安全的么? 不能。 volatile仅仅是告诫compiler不要对这个变量作优化,每次都要从memory取数值,而不是从register 5.InterlockedIncrement保证整型变量自增的原子性 写好多线程安全的法宝就是封装,使数据有保护的被访问到 安全性: 局部变量 > 成员变量 > 全局变 函数的隐含储存类型是extern,函数的形参或变量的储存类型为auto Cin的用法 1.cin简介 cin是C++编程语言中的标准输入流对象,即istream类的对象

面试官: 聊一聊Babel

你。 提交于 2019-11-30 09:34:09
点击关注本 公众号 获取文档最新更新,并可以领取配套于本指南的 《前端面试手册》 以及 最标准的简历模板 . 前言 Babel 是现代 JavaScript 语法转换器,几乎在任何现代前端项目中都能看到他的身影,其背后的原理对于大部分开发者还属于黑盒,不过 Babel 作为一个工具真的有了解背后原理的必要吗? 如果只是 Babel 可能真没有必要,问题是其背后的原理在我们开发中应用过于广泛了,包括不限于: eslint jshint stylelint css-in-js prettier jsx vue-template uglify-js postcss less 等等等等,从模板到代码检测,从混淆压缩到代码转换,甚至编辑器的代码高亮都与之息息相关. 如果有兴趣就可以搞一些黑魔法: 前端工程师可以用编译原理做什么? 前置 Babel 大概分为三大部分: 解析: 将代码(其实就是字符串)转换成 AST( 抽象语法树) 转换: 访问 AST 的节点进行变换操作生成新的 AST 生成: 以新的 AST 为基础生成代码 我们主要通过打造一个微型 babel 来了解 babel 的基本原理,这个微型 babel 的功能很单一也很鸡肋,但是依然有400行代码,其实现细节与 babel 并不相同,因为我们省去了很多额外的验证和信息解析,因为单单一个兼容现代 JavaScript 语法的

ICONV下载

一世执手 提交于 2019-11-30 09:32:40
ICONV下载 https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz #pc $ ./configure CC=arm-none-linux-gnueabi-gcc #NT $./configure --host=arm-linux CC=arm-ca53-linux-gnueabihf-gcc $make 编译命令 gcc -o iconv iconv.c -L ./lib -liconv 在./lib/.libs下取出so动态库文件 静态库 ./configure --enable-shared=no --enable-static=yes 头文件说明 iconv函数族有三个函数,原型如下: (1) iconv_t iconv_open (const char *tocode, const char *fromcode); 此函数说明将要进行哪两种编码的转换 tocode是目标编码 fromcode是原编码 该函数返回一个转换句柄,供以下两个函数使用 (2) size_t iconv (iconv_t cd,char **inbuf,size_t *inbytesleft,char **outbuf,size_t *outbytesleft); 此函数从inbuf中读取字符 转换后输出到outbuf中

C语言实现二叉树的基本功能

两盒软妹~` 提交于 2019-11-30 09:13:00
本程序实现二叉树的如下功能 1、以先序序列和中序序列构造二叉树 2、以层序序列和中序序列构造二叉树 3、先序遍历、中序遍历、后序遍历、层序遍历 4、求二叉树高度 5、验证这个二叉树是否具备这样的性质:任何一个子树中的结点集合,树根结点的值总是最小。(按字母序) 6、拷贝二叉树 7、将二叉树左右子树交换 8、销毁二叉树 9、删除值为x的节点及其全部子孙 binary_tree.h文件 注:queue.h文件在 这里 # ifndef __BINARY_TREE_H__ # define __BINARY_TREE_H__ # include <stdio.h> # include <stdlib.h> # include <string.h> # include <stdbool.h> # include "queue.h" # define SIZE_bt 1024 struct bt { char data ; struct bt * lchild , * rchild ; } ; struct bt * PreInBuild ( char * pre , char * in ) ; //以先序序列和中序序列构造二叉树 struct bt * LevelInBuild ( char * level , char * in ) ; //以层序序列和中序序列构造二叉树 void

二:C语言复习基础--函数

那年仲夏 提交于 2019-11-30 07:49:52
一:函数的声明和定义 //1.函数声明(参数变量可省略) 返回值类型 函数名(参数类型 参数,参数类型 参数,...); //2.函数定义 返回值类型 函数名(参数类型 参数,参数类型 参数,...) { 语句; return 返回值; } //3.参数类型存在隐式转换 int fun(int c,int b) { printf("%d,%d\n",c,b); double a=100.09; return a; } int main() { double a=fun(1.9,2.3); printf("%f",a); } 二:main函数的始终 1.main函数的三种形式 //无参 int main(); //参数个数和参数列表 int main(int argc,char *argv[]); //参数个数和参数列表、环境变量列表 int main(int argc,char *argv[],char *envp[]); 2.main函数原理 C90标准中,规定了执行环境,对于没有操作系统的环境,入口地址是什么都可以。对于有操作系统的环境中,链接器会把main函数和另外的启动程序链接,而启动程序会引用你写的main函数 #include<stdio.h> int print() { printf("helloworld"); return 0; } //编译参数:gcc test

qt 中文乱码问题

邮差的信 提交于 2019-11-30 07:16:04
QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForTr(codec); QTextCodec::setCodecForLocale(QTextCodec::codecForLocale()); QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); 在main函数中加入以上代码。   转自:http://f.dataguru.cn/thread-866992-1-1.html 解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK) 编码知识科普Qt常见的两种编码是:UTF-8和GBK ★UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。 ★GBK是国家标准GB2312基础上扩容后兼容GB2312的标准

参数、返回值、局部变量、数组分析

最后都变了- 提交于 2019-11-30 07:10:55
1.返回值的传递 各种类型返回值传出来的方式: 1、char类型的返回值 ->寄存器al 2、short 类型的返回值 ->寄存器ax 3、int 类型的返回值 ->寄存器eax 如果是long long 则将低位保存在eax,将高位保存在edx; //vc用__int64表示long long __int64 fun(){ return 0x1234567890; } int main(int argc, char* argv[]) { __int64 a = fun(); return 0; } 在函数中返回值保存: 在函数外面取出返回值: 总之: int、char、long、数组等变量类型本质上的区别只是到底能存多少位的数,也就是容量的区别; 2.参数传递的本质 参数传递有两种方式:1】寄存器;2】堆栈; 不同类型的参数传递时,通常会转换成本机尺寸来传递; 例如32位机中char类型的参数:虽然char是1个字节,但传递到栈中时按4个自己来保存; 情况1: void fun(char x, char y){ } int main(int argc, char* argv[]) { fun(1,2); return 0; } 参数入栈前: 参数入栈后: 情况2: void fun(char x, char y){ } int main(int argc, char* argv[