char函数

AC自动机&后缀自动机

匿名 (未验证) 提交于 2019-12-02 23:47:01
理解的不够深 故只能以此来加深理解 。我这个人就是蠢没办法 学长讲的题全程蒙蔽。可能我字符串就是菜吧,哦不我这个人就是菜吧。 AC自动机的名字 AC 取自一个大牛 而自动机就比较有讲究了 不是寻常的东西呢。 自动机由5部分组成 1 字符集 2 状态集合 3 初始状态 4 结束状态集合 5 状态转移函数。 字符集 是指自动机字符的集合。 当然以上有点深奥,我们只需要其能识别字符串即可。 显然的是 KMP做单字符串对单字符串的匹配使用 而AC自动机则是多个字符串在一个字符串上的匹配。 构建trie 大家都会 但是如何求fail 指针呢 思考一下我们求的fail指针其实是指向和当前这个串能匹配的最长后缀。前缀是没有必要的因为我是利用答案串进行匹配的,因为我们得到一个最长前缀再继续这样匹配还是一样效果我们既然答案串都匹配到了现在 也就是当前局面已经不可逆了我们只能不断的跳 跳到一个合法地方让其能继续匹配下去 所以跳到一个最长后缀的位置这样如果还失配的话我们还有机会继续跳 如果跳到一个较短的后缀上的话我们把那些长的都扔了这显然是非常不好做法。 那么现在就有了基础思路构造fail指针 然后失配就不断跳 就行了。在构造fail指针的时候我们是先构造了一颗trie树在trie树搞fail指针显然最长后缀<当前匹配的位置 至于那些比当前位置还要深的位置一定不可能出现,那么就是看深度咯

C++ void/指针与其他数据类型的相互转换

匿名 (未验证) 提交于 2019-12-02 23:47:01
在写opencv多线程的时候用到了pthread_create()函数, int const ( void *)(*start_rtn)( void *), void *arg); 其中函数里最后一个变量声明为void* args。因为涉及到函数之间的传参,因此考虑将void*指针转换为string类型存放opencv图片存放路径,因为void*指针的特殊性,将void*作为中间指针变量,在string转换后的void*指针传入后,再将void* 转换为string类型,在调用的线程函数中imread(string path)。记录下来这种思路,以作以后参考。 此外还有些小问题要注意 就是(char *)后面强制转换的是空的话,可能会影响到控制台输出问题 另外在c++11之前的时候 头文件 不能char char_10[10] = "char_10";//错误 不能直接初始化 在gcc中却是带上11都没法初始化,一直报错array used as initializer 后来用string初始化,或者干脆不初始化 在其他地方 strcpy(char_10, "xxx"); string string_1 = "string_1"; string string_2 = "string_2"; char char_1 = 'char_1'; char char_2[] = "char

《收获,不止SQL优化》读书笔记

匿名 (未验证) 提交于 2019-12-02 23:47:01
原文链接:https://smilenicky.blog.csdn.net/article/details/94862797, 我的sql调优专栏:https://smilenicky.blog.csdn.net/article/category/8679315 AWR、ASH、ADDM、AWRDD 整体分析调优工具 AWR:关注数据库的整体性能的报告; ASH:数据库中的等待事件与哪些SQL具体对应的报告; ADDM:oracle给出的一些建议 AWRDD:Oracle针对不同时段的性能对比报告 AWRSQRPT:oracle获取统计信息与执行计划 不同场景对应工具 局部分析调优工具: explain plan for set autotrace on statistics_level=all 直接通过sql_id获取 10046 trace awrrpt.sql 整体性能工具要点 AWR关注点:load profile、efficiency percentages、top 5 time events、SQL Statistics、segment_statistics ASH关注点:等待事件与sql完美结合 ADDM:各种建议与对应SQL AWRDD:不同时期 load profile的比较、不同时期等待事件的比较、不同时期TOP SQL的比较 AWRSQRPT:获取与关注点

第八章指针实验报告

匿名 (未验证) 提交于 2019-12-02 23:43:01
实验项目:指针实验 姓名:谢丽萍 实验地点:514教室 实验时间:2019年6月12日 一、本章要点 1、掌握指针的概念和定义的方法; 2、指针运算符和指针定义的区别; 3、指针与数组、字符串的关系; 4、指针函数的参数和返回指针的函数; 5、函数指针; 二、实验内容 1、实验练习 ①问题简单的描述: 1、定义一个整形指针变量匹,使它指向一个整形变量啊,定义一个浮点型指针去,使它指向一个浮点型变量吧,同时定义另外一个整型变量并赋初值3。 2、使用指针变量,调用scanf函数分别输入a和b的值。 3、通过指针间接访问并输出a,b的值。 4、按十六进制方式输出p,q的值并输出。 5、将P向c,通过P间接访问c的值并输出。 6、输出P的值及c的地址,并与上面的结果进行比较。 ③实验代码: #include <stdio.h> int main () { int * p , a , c = 3 ; float * q , b ; p =& a ; q =& b ; printf ( "please input the value of a,b:" ); scanf ( "%d%f" ,& a ,& b ); printf ( "result:\n" ); printf ( " %d,%f\n" , a , b ); printf ( " %d,%f\n" ,* p ,* q );

各位大神,这是清华大学单片机例子,抄下来有错误,但不知道哪里错了,求帮!

匿名 (未验证) 提交于 2019-12-02 23:43:01
//用共阳极LED数码管,key0为调时位选择键,key1为加一键,key2为减一键 #include<reg51.h> #define char unsigned char char code dis_7[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0xb2,0xf8,0x80,0x90,0xff,0xbf}; //共阳极LED数码管“0―9”,“灭”,“-”的字码段 char code scan_con[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位选择码 char data dis[8]={0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00};//显示缓冲区时分秒初始为0,0x0b为“-”的编码 char data timedata 3 ={0x00,0x00,0x00};//分别为时分秒的值 char data ms50=0x00,con=0x00,con1=0x00,con2=0x00; sbit key0=P1^0; sbit key1=P1^1; sbit key2=P1^2; //1ms延时函数 delay 1ms(int t) { int i,j; for (i=0;i<t;i++) for (j=0;j<120;j++); } //按键处理函数 keyscan

第八章 指针实验

匿名 (未验证) 提交于 2019-12-02 23:43:01
姓名:李小玲 实验地点: 514实验室 实验时间:2019.6.12 本实验旨在加强学生对指针数据类型的理解,熟悉指针的定义、通过指针间接访问变量 8.3.2 数据交换 本实验旨在加强学生对指针类型作为函数参数传递的理解,通常将实参传递给形参的时候,有两种方式,即按值传递和按地址传递,其中指针 类型参数既是按地址传递。 8.3.3 字符串反转及字符串连接 本实验加强学生对字符指针以及将指针作为函数的返回类型的理解,并通过指针对字符串进行操作。 8.3.4 数组元素奇偶排列 本实验旨在加强学生对使用指针对数组进行操作的理解。 二、实验内容 实验1:指针基础及指针运算 1.问题的简单描述: ( 1)定义一个整型指针变量p,使它指向一个整型变量a,定义一个浮点型指针q,使它指向一个浮点型变量b,同时定义另外一个整型变量c并赋初值3。 (2)使用指针变量,调用scanf函数分别输入a和b的值。 (3)通过指针间接访问并输出a、b的值。 (4)按十六进制方式输出p、q的值以及a、b的地址。 (5)将p指向c,通过p间接访问c的值并输出。 (6)输出p的值及c的地址,并与上面的结果进行比较。 2.实验代码,效果图: #include <stdio.h> int main () { int * p , a , c = 3 ; float * q , b ; p =& a ; q =& b ;

网络嗅探器

匿名 (未验证) 提交于 2019-12-02 23:43:01
2019独角兽企业重金招聘Python工程师标准>>> 网络嗅探器 :把网卡设置成混杂模式,并可实现对网络上传输的数据包的捕获与分析。 原理:   通常的套接字程序只能响应 与自己MAC地址 相匹配的 或者是 广播形式发出的数据帧 ,对于其他形式的数据帧网络接口采取的动作是 直接丢弃   为了使网卡接收所有经过他的封包,要将其设置成 混杂模式 ,通过 原始套接字 来实现。 设置混杂模式:   创建原始套接字,   绑定到一个明确的本地地址,   向套接字发送SIO_RCVALL控制命令,   接收所有的IP包 代码实现步骤:   1 创建原始套接字   2 绑定到明确地址   3 这是SIO_RCVALL控制代码   4 进入循环,调用recv函数接收经过本地网卡的IP封包。 主程序代码如下 : void main() { // 创建原始套接字 SOCKET sRaw = socket(AF_INET,SOCK_RAW,IPPROTO_IP); // 获取本地IP地址 char szHostName[ 56 ]; SOCKADDR_IN addr_in; struct hostent * pHost; gethostname(szHostName, 56 ); if ((pHost=gethostbyname(( char *)szHostName))== NULL) return

C语言结构体及其内存布局

匿名 (未验证) 提交于 2019-12-02 23:41:02
结构体的定义 结构体的定义要使用struct关键字,并以";"结尾。 下面找个微软定义的结构体: typedef struct _FILETIME { DWORD dwLowDateTime; DWORD dwHighDateTime; } FILETIME, *PFILETIME, *LPFILETIME; 可以看出在定义结构体时使用了typedef,为_FILETIME起了一个别名,并定义了指向改结构 的指针PFILETIME。 结构体变量的初始化与赋值操作 使用初始化列表进行初始化 例如: FILETIME ft = { 88,99 }; 还可以使用memset进行清零初始化: FILETIME ft memset(&ft,0,sizeof(ft)); 结构体变量赋值 C++11标准之前只能在结构体变量初始化的时候可以使用列表进行初始化, 现在支持C++11标准的编译器可以在任意场合使用列表进行赋值,编译时不会报错. 例: C++11标准还可以直接在定义结构体时为每个成员指定初值,例: 但是最后还是不要使用新标准这两个特性,因为在不支持C++11标准的编译器上会报错, 一个空结构体的大小 一个空结构体的大小为1字节,而不是零字节 例: 计算结构体大小 结构体成员对齐值 typedef struct tagTest { char m_chTest; int m_nTest;

栈的实际应用

匿名 (未验证) 提交于 2019-12-02 23:41:02
栈的实际应用 栈是一种先进后出的数据结构,这个我相信大家很好理解。那下面我就通过两个栈的实际应用来帮助大家更好的理解栈的工作状态。 数制的转换 参考清华大学出版社《数据结构》中的说明: 十进制数N和其他d进制数的转换是计算机实现计算的基本问题,其解决方法很多,其中一个简单算法基于下列原理: N = ( N div d ) * d + N mod d (其中,div为整除运算,mod为求余运算) 例如: ( 1348 ) 10 \ (1348)_{10} ( 1 3 4 8 ) 1 0 = ( 2504 ) 8 \ (2504)_{8} ( 2 5 0 4 ) 8 N N div 8 N mod 8 1348 168 4 168 21 0 21 2 5 2 0 2 下面看c代码,这里是顺序栈 # include <stdio.h> # include <stdlib.h> typedef struct stack { int * base ; int * top ; } Stack , * pStack ; Stack s = { 0 } ; //结构体的声明 //栈的初始化 void InitStack ( ) { s . base = ( int * ) malloc ( 100 * sizeof ( int ) ) ; if ( ! s . base ) { printf (

C语言不同类型之间的转换

匿名 (未验证) 提交于 2019-12-02 23:41:02
1.String类型转换成char数组 char a [ 256 ]; String b ; strcpy ( a , b . c_str ()); /*String 类型转char数组。char *strcpy(char* dest, const char *src) c_str是Borland封装的String类中的一个函数,它返回当前字符串的首字符地址。当需要打开一个由用户自己输入文件名的文件时,可以这样写:ifstream in(st.c_str())。*/ 转载请标明出处: C语言不同类型之间的转换 文章来源: C语言不同类型之间的转换