char函数

词法分析程序实验

做~自己de王妃 提交于 2020-03-29 21:34:07
词法分析程序实验 一、 实验目的 编制一个词法分析程序。 二、 实验内容和要求 输入:源程序字符串 输出:二元组(种别,单词符号本身)。 三、 实验方法、步骤及结果测试 源程序名: bianyiyuanli .c 可执行程序名: bianyiyuanli .exe 原理分析及流程图 通过一些for循环和while循环进行一个个的翻译。 源程序如下: #include<stdio.h> #include<string.h> #include<stdlib.h> char TOken[10];//分开进行比较 char ch; /*char rwtab[6]={"begin","if","then","while","do","end"};*/ char r1[]={"auto"}; char r2[]={"break"}; char r3[]={"case"}; char r4[]={"char"}; char r5[]={"const"}; char r6[]={"continue"}; char r7[]={"default"}; char r8[]={"do"}; char r9[]={"double"}; char r10[]={"else"}; char r11[]={"enum"}; char r12[]={"extern"}; char r13[]={"float"};

PL/0 词法分析

…衆ロ難τιáo~ 提交于 2020-03-29 20:25:04
  用 C 语言编写一个 PL/0 词法分析器 ,为语法语义分析提供单词, 使之能 把输入的字符 串 形式的源程序分割成一个个单词符号传递给语法语义分析, 并把分析结果 (基本字,运算符, 标识符 ,常数以及界符) 输出 。   PL/0 的词法分析程序 GETSYM 是一个独立的过程,其功能是为语法语义分析提供单词,把输入的字符串形式的源程序分割成一个个单词符号传递给语法语义分析。 其主要任务为: 1、滤空格;2、识别基本字;3、识别标识符;4、拼数;5、拼复合词;6、输出源程序。 PL/0 编译程序一般设置 3 个全程变量: SYM :存放每个单词的类别,用内部编码形式表示; ID : 存放用户所定义的标识别符的值; NUM :存放用户定义的数。 PL/0 语言的单词的种类分成基本字(亦称保留字)、运算符、标识符、常数、界符 5 个大类,以下是针对这 5 类单词的一种 EBNF 描叙:   < 无符号整数 > :: =< 数字 >{< 数字 >}   < 标识符 > :: =< 字母 >{< 字母 >|< 数字 >}   < 字母 > :: =a|b| …… |X|Y|Z   < 数字 > :: =0|1|2| …… |8|9   < 保留字 > :: = const | var | procedure | begin | end | odd | if | then |

【视频开发】ONVIF、RTSP/RTP、FFMPEG的开发实录

笑着哭i 提交于 2020-03-29 14:01:59
ONVIF、RTSP/RTP、FFMPEG的开发实录 前言 本文从零基础一步步实现ONVIF协议、RTSP/RTP协议获取IPC实时视频流、FFMPEG解码。开发环境为WIN7 32位 + VS2010。 最终成功获取浩云、海康、大华的IPC实时视频流。 如果要了解本文更多细节,或者用本文作设计指导,那最好把文中提到的连接都打开,与本文对照着看。 前期准备 1.准备一个ONVIF服务器 既然开发的是客户端,那必需要有服务端了。我这里大把的IPC,好几个品牌的,就随便拿了一个。 如果没有IPC,倒是可以用 VLC media player 搭建一下。或者其他播放器也可以。这个网上很多资料。 2.准备一个ONVIF 测试工具 这个工具在ONVIF的官网上可以找到:ONVIF Device Test Tool 。 3.准备解码器相关资料及资源 收到视频流后,需要解码。可以用ffmpeg,也可以用其他解码库。这个是后话了,等ONVIF搞定之后再搞解码也不迟。推荐链接: http://wenku.baidu.com/view/f8c94355c281e53a5802ffe4.html?re=view (Windows下使用MinGW编译ffmpeg与x265) 4.准备资料 ONVIF协议书必看,ONVIF官网自然是不能少的。其他资料推荐几个链接: http://www.cuplayer

spine实现预加载(一)

好久不见. 提交于 2020-03-29 12:01:27
前言   本文实现了spine动画的预加载,解决在战斗等大量加载spine动画的时候出现卡顿现象。 这里使用和修改三个类,直接修改的源码,当然你也可以继承LuaSkeletonAnimation,自己封装一个类。这里做个例子, 不自己写类,直接改源码。如果想自己写,绑定到lua,看我别的帖子。废话不多说,入主题。 在之前对图片 应该对图片进行异步加载,详细以后再说。 版本:quicklua 3.3 win vs2012 原理 先分析下,LuaSkeletonAnimation类 class LuaSkeletonAnimation: public spine::SkeletonAnimation { public: static LuaSkeletonAnimation* createWithFile (const char* skeletonDataFile, const char* atlasFile, float scale = 1); LuaSkeletonAnimation (const char* skeletonDataFile, const char* atlasFile, float scale = 1); virtual ~LuaSkeletonAnimation(); }; LuaSkeletonAnimation 继承自 SkeletonAnimation类

c语言字符串处理函数

这一生的挚爱 提交于 2020-03-29 04:03:21
很高效的字符串处理函数: void *memccpy (void *dest, const void *src, int c, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中。如果复制过程中遇到了字符c则停止复制,返回指针指向dest中字符c的下一个位置;否则返回NULL。 void *memcpy (void *dest, const void *src, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中。返回指针为dest的值。 void *memchr (const void *s, int c, size_t n); 在s所指向的对象的前n个字符中搜索字符c。如果搜索到,返回指针指向字符c第一次出现的位置;否则返回NULL。 int memcmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符。返回值是s1与s2第一个不同的字符差值。 int memicmp (const void *s1, const void *s2, size_t n); 比较s1所指向的对象和s2所指向的对象的前n个字符,忽略大小写。返回值是s1与s2第一个不同的字符差值。 void *memmove (void *dest, const void

C语言字符串函数大全

天大地大妈咪最大 提交于 2020-03-29 03:54:47
C语言字符串函数大全 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: 1 #include <stdio.h> 2 3 #include <string.h> 4 5 6 7 int main(void) 8 9 { 10 11 char string[10]; 12 13 char *str1 = "abcdefghi"; 14 15 16 17 stpcpy(string, str1); 18 19 printf("%s\n", string); 20 21 return 0; 22 23 } 函数名: strcat 功 能: 字符串拼接函数 用 法: char *strcat(char *destin, char *source); 程序例: 1 #include <string.h> 2 3 #include <stdio.h> 4 5 6 7 int main(void) 8 9 { 10 11 char destination[25]; 12 13 char *blank = " ", *c = "C++", *Borland = "Borland"; 14 15 16 17 strcpy(destination, Borland); 18 19

c语言字符函数

送分小仙女□ 提交于 2020-03-29 03:54:04
函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include <stdio.h> #include <string.h> int main(void) { char string[10]; char *str1 = "abcdefghi"; stpcpy(string, str1); printf("%sn", string); return 0; } 函数名: strcat 功 能: 字符串拼接函数 用 法: char *strcat(char *destin, char *source); 程序例: #include <string.h> #include <stdio.h> int main(void) { char destination[25]; char *blank = " ", *c = "C++", *Borland = "Borland"; strcpy(destination, Borland); strcat(destination, blank); strcat(destination, c); printf("%sn", destination); return 0; } 函数名: strchr 功 能:

string.h文件中函数的详细用法

删除回忆录丶 提交于 2020-03-29 03:48:10
 下面为string.h文件中函数的详细用法,附加实例: 1、strcpy   函数名: stpcpy   功 能: 拷贝一个字符串到另一个   用 法: char *stpcpy(char *destin, char *source);   程序例:   #include <stdio.h>   #include <string.h>   int main(void)   {   char string[10];   char *str1 = "abcdefghi";   stpcpy(string, str1);   printf("%s\n", string);   return 0;   } 2、strcat   函数名: strcat   功 能: 字符串拼接函数   用 法: char *strcat(char *destin, char *source);   程序例:   #include <string.h>   #include <stdio.h>   int main(void)   {   char destination[25];   char *blank = " ", *c = "C++", *Borland = "Borland";   strcpy(destination, Borland);   strcat(destination, blank

第七周 可执行程序的卸载

不想你离开。 提交于 2020-03-28 22:40:52
一.预处理,编译,链接和目标文件的格式 可执行程序是怎么得来的: 预处理负责把include的文件包含进来及宏替换等工作 可执行文件的创建——预处理、编译和链接: 目标文件的格式ELF:A.out-->COFF-->PE/ELF ABI&目标文件格式: 一个可重定位保存着代码和适当的数据,用于和其他的object文件一起来创建一个可执行文件或是一个共享文件(主要是.o文件) 一个可执行文件保存着一个用来执行的程序,该文件指出exec(BA_OS)如何来创建程序进程映像(主要是.so文件) 当创建或增加一个进程映像的时候,系统理论上将拷贝一个文件的段到一个虚拟的内存段 一般静态链接会将所有代码放在一个代码段,动态链接的进程会有多个代码段 二.可执行程序,共享库和动态链接 可执行程序的执行环境 命令行参数和shell环境,一般我们执行一个程序的Shell环境即execve系统调用。 $ ls -l /usr/bin 列出/usr/bin下的目录信息 Shell本身不限制命令行参数的个数, 命令行参数的个数受限于命令自身 例如,int main(int argc, char *argv[]) 又如, int main(int argc, char *argv[], char *envp[]) Shell会调用execve将命令行参数和环境参数传递给可执行程序的main函数 int

mysql入门(二)

流过昼夜 提交于 2020-03-28 18:16:02
MySQL数据库中相关概念介绍 1.字符集 字符集:可见字符在保存和传输的时候,二进制的代码集合。 字符集:1. 保存数据;2. 传输数据。 1). MySQL可以在服务器上,数据库,表,字段上指定字符集 2). 服务器上在系统安装的时候就要指定 3). 数据库,表和字段在创建的指定 create table test( name varchar(64) charset gb2312 )charset=gbk; 字符编码: 字符编码一般在数据库创建的时候就已经决定了。在创建表的时候,字符集默认继承。常用的字符集gbk,utf8两种。gbk叫做中文字符合集,中文字符占用2个字节(一般);utf8 国际编码,一般是占用3个字节;utf8mb4 是utf8的衍生版,为了解决日益增加的新的字体而创建的,一般是占用4个字节。 对比两种编码,在mysql带来的影响: create table `test1`( name varchar(21844) )charset=utf8; ​ -- 65535/3 -1 = 21844 ===> varchar最大长度是21844 ​ create table `test2`( name varchar(32766) )charset=gbk; ​ -- 65535 / 2 -1 = 32766 查看MYSQL服务器当前支持的格式: show