char函数

ORACLE 存储过程实战

放肆的年华 提交于 2020-02-03 03:27:48
--定义获取部门ID的函数 create or replace function Get_Dept_Id(in_Dept_name in varchar2) return integer as v_dept_id integer := 1; begin sELECT dept_id into v_dept_id FROM dict_depts WHERE DEPT_NAME = in_Dept_name; return v_dept_id; exception when no_data_found then v_dept_id := 1; return v_dept_id; when others then v_dept_id := 1200; --糯扎渡项目部将返回2条记录,在此处捕获并重新赋值 return v_dept_id; end Get_Dept_Id; --定义获取单位ID的函数 create or replace function Get_Unit_Id(in_unit_name in varchar2) return integer as v_unit_id integer := 1; begin SELECT id into v_unit_id FROM ins_unit_dict WHERE NAME = in_unit_name; return v_unit

C语言函数---递归与迭代

老子叫甜甜 提交于 2020-02-03 00:02:39
简单介绍C语言函数 C语言函数是一种函数,用来编译C语言,所在库函数为ctype.h,分为分类函数,数学函数,目录函数,进程函数,诊断函数,操作函数等。 从表面上看,函数在使用时必须带上括号,有必要的话还要传递参数,函数的执行结果也可以赋值给其它变量 对于库函数和自定义函数 C语言在发布时已经为我们封装好了很多函数,它们被分门别类地放到了不同的头文件中(暂时先这样认为),使用函数时引入对应的头文件即可。这些函数都是专家编写的,执行效率极高,并且考虑到了各种边界情况,各位读者请放心使用。 C语言自带的函数称为库函数(Library Function)。库(Library)是编程中的一个基本概念,可以简单地认为它是一系列函数的集合,在磁盘上往往是一个文件夹。C语言自带的库称为标准库(Standard Library),其他公司或个人开发的库称为第三方库(Third-Party Library)。 递归与迭代的区别 递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己. 一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合. 使用递归要注意的有两点: 1)递归就是在过程或函数里面调用自身; 2)在使用递归时,必须有一个明确的递归结束条件

C语言qosrt()函数的使用

泄露秘密 提交于 2020-02-02 22:41:49
qsort() qosrt()这个函数很有作用,可以用来排列一维的数组,还可以排列二维的数组等高纬度的数组。除此之外,还可以排列一部分的数组元素,qsort第一个参数是数组名,第二个参数是数组的长度,第三个参数是数组成员的大小,第四个参数是比较器。 一维数组 整形的一维数组 先来一份小代码 int cmp(const void *a, const void * b) { int c = *(int *)a; int d = *(int *)b; return c - d; } int main() { int i; int a[5] = {1,3,2,4,0}; qsort(a,5, sizeof(int), cmp); for (i = 0; i < 5; i++) printf("%d ",a[i]); } 结果 0 1 2 3 4 首先我们要理解cmp的含义,cmp是一个比较器,当我们cmp返回的是一个正数时,会进行交换,例如如果上述的代码中变量c是3 d是2,c - d是大于0的,所以a[1]与a[2]进行交换。 灵活的运用 我们可以通过过改变起始位置和数组的长度来改变排列的范围 #include <stdio.h> #include <stdlib.h> #include <math.h> int cmp(const void *a, const void * b) {

一个入门级CTF的Reverse

喜夏-厌秋 提交于 2020-02-02 22:13:56
这道题是XCTF攻防世界上的一道新手入门题目! 年前刚接触逆向时IDA,OD了这些工具都不会用(负基础),当时做这些题的时候觉得挺难(主要是缺少练习,没思路无从下手)。现在回头再来看这些题目感觉确实是入门级的题目,所以逆向是门艺术更是门技术,需要多练习熟悉工具和掌握一些技巧,下面就来分析一下这道题目。 题目给了一个附件是一个exe的可执行文件,那好我们先来执行一下他好了! 结果出来一大堆英文,奈何本人英文真的很菜,高考40分:),浑身发憷,不怕手机自带拍照翻译,虽然翻译的水平很一般但是磕磕绊绊的还是能明白他什么意思: 这是个游戏(游戏规则:把那几个图形都看成灯,当其都亮时,也就是图形变成实心的游戏胜利),你必须把这个游戏过了之后才会得到我们想要的flag。 我们是要通过工具来获得这个flag,当然如果你玩游戏很nb的话你也可以通关他获得flag。 好废话不多说我们现在就来寻找flag! 1. 我们先用PEID分析一下程序的基本信息 可以看到检测到其未压缩,说明此程序无壳。下面我们可以选择用静态分析工具IDA来分析程序,也可以选用动态调试工具Ollydbg。 我们先用IDA来分析吧,因为此程序为32位的所以我们用32位的IDA打开程序。 我们按Ctrl + E弹出入口函数的信息,点击确定进入入口函数。因为此程序是一个控制台程序,所以我们需要找到main函数(处理逻辑在main函数里)

第八周作业

懵懂的女人 提交于 2020-02-02 21:37:32
这个作业属于那个课程 c语言程序设计 这个作业要求在哪里 2019春第八周作业 这个作业在那个具体方面帮助我实现目标 指针 在这个课程的目标 熟练指针 参考文献 课本 C语言程序设计 6-1 函数实现字符串逆序 (15 分) 本题要求实现一个字符串逆序的简单函数。 函数接口定义: void f( char *p ); 函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。 裁判测试程序样例: #include <stdio.h> #define MAXS 20 void f( char *p ); void ReadString( char *s ); /* 由裁判实现,略去不表 */ int main() { char s[MAXS]; ReadString(s); f(s); printf("%s\n", s); return 0; } /* 你的代码将被嵌在这里 */ 输入样例: Hello World! 输出样例: !dlroW olleH (1)实验代码 void f( char *p ) { int i=0,q=0,h,temp;//q为第一个字符,h为最后一个字符 while(p[i]!='\0') i++; h=i-1; while(q<=h) { temp=p[q];//循环交换第一个和最后一个 p[q]=p[h]; p[h

字符串函数(一) strcpy和strncpy

房东的猫 提交于 2020-02-02 21:21:27
Strcpy: Char *strcpy(char *dst, const char *scr); 返回值为 dst的首地址 下面是一段应用代码 1 #include <stdio.h> 2 #include <string.h> 3 # define MAX 40 4 int main() 5 { 6 char *a="beast"; 7 char b[MAX] ="you are the beast one"; 8 char *p; 9 p = strcpy(b+8,a); 10 puts(a); 11 puts(b); 12 puts(p); 13 return 0; 14 } 注意!!! 在函数的处理过程中 字符数组b已经被修改 从第九个字符't' 开始被字符串a="beast“ 替代 并且字符串结尾处的 ‘\0 '也会被写入,并且从此截断 (因为\0标志着结束,不会读入之后的字符)所以b输出结果为you are bea 而前面也提到了 strcpy函数 返回值为指针dst 即b+8的首地址, 所以输出结果为beast, 即从p的第九个字符开始。 所以strcpy不能完成将某一字符串插入到另一字符串的中间位置上,并保留其余字符。 所以C语言中出现了函数 Strncpy Char *strncpy(char *dst, const char *scr, size_t n);

第八周

喜夏-厌秋 提交于 2020-02-02 17:24:45
第八周作业 本周作业头 这个作业属于哪个课程 C语言程序设计2 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/3076 我的课程目标 动态分配 这个作业在哪个具体方面帮助我实现目标 统计数据这类的问题 参考文献 C语言程序设计2 一、基础作业 题目6-1 函数实现字符串逆序 (15 分) 本题要求实现一个字符串逆序的简单函数。 函数接口定义: void f( char *p ); 函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。 裁判测试程序样例: #include <stdio.h> #define MAXS 20 void f( char *p ); void ReadString( char *s ); /* 由裁判实现,略去不表 */ int main() { char s[MAXS]; ReadString(s); f(s); printf("%s\n", s); return 0; } /* 你的代码将被嵌在这里 */ 输入样例: Hello World! 输出样例: !dlroW olleH 1:实验代码 void f( char *p ) { int i=0,k=0,m,t; while(p

第八周作业

六月ゝ 毕业季﹏ 提交于 2020-02-02 14:41:39
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass1-2018/homework/3079 我在这个课程的目标是 我希望能够通过学习C语言的知识,理解难点 这个作业在那个具体方面帮助我实现目标 字符串函数以及使用指针操作字符串的方法 参考文献 c语言书 6-1 函数实现字符串逆序 本题要求实现一个字符串逆序的简单函数。 函数接口定义: void f( char *p ); 函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。 裁判测试程序样例: #include <stdio.h> #define MAXS 20 void f( char *p ); void ReadString( char *s ); /* 由裁判实现,略去不表 */ int main() { char s[MAXS]; ReadString(s); f(s); printf("%s\n", s); return 0; } /* 你的代码将被嵌在这里 */ 输入样例: Hello World! 输出样例: !dlroW olleH 1.分析题目 2.定义变量 3.找出判断条件 4.写代码 代码 void f( char *p ) { char

剑指Offer-打印从 1 到最大的 n 位数

血红的双手。 提交于 2020-02-02 12:49:20
题目 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数999。 解法探析 解法 1 看完这道题目之后,我们一般都会想到先求出最大的 n 位数,再用一个循环从 1 开始逐个打印。代码如下所示: int Print1ToMaxOfNDigits(int n) { int number = 1; int i = 0; while (i++ < n) { // 求出最大的 n 位数 number *= 10; } for (i = 1; i < number; ++i) { printf("%d\t", i); } return 0; } 仔细分析会发现题目中没有规定 n 的范围,当 n 很大时,代码中不管是用整型(int)或长整形(long long)最终都会溢出,故这里就要考虑一下大数处理的问题。 解法 2 对于大数问题的处理,我们一般能想到的方法是用字符串或者数组。 Print1ToMaxOfNDigits函数 int Print1ToMaxOfNDigits(int n) { // n 小于等于 0 时不符合条件,则异常退出 if (n <= 0) { return 1; } // 给表示数字的字符串 number 申请 n + 1 个char类型大小的内存空间 char* number = (char*

2019春第八周作业

南楼画角 提交于 2020-02-02 08:16:06
6-1 函数实现字符串逆序 (15 分) 本题要求实现一个字符串逆序的简单函数。 函数接口定义: void f( char *p ); 函数 f 对 p 指向的字符串进行逆序操作。要求函数 f 中不能定义任何数组,不能调用任何字符串处理函数。 裁判测试程序样例: #include <stdio.h> #define MAXS 20 void f( char *p ); void ReadString( char *s ); /* 由裁判实现,略去不表 */ int main() { char s[MAXS]; ReadString(s); f(s); printf("%s\n", s); return 0; } /* 你的代码将被嵌在这里 */ 输入样例: Hello World! 输出样例: !dlroW olleH 实验代码: void f( char *p ) { int i=0,q=0,h,tmp; while(p[i]!='\0') i++; h=i-1; while(q<=h) { tmp=p[q]; p[q]=p[h]; p[h]=tmp; q++; h--; } return ; } 设计思路: 运行结果截图: 6-3 字符串的连接 (15 分) 本题要求实现一个函数,将两个字符串连接起来。 函数接口定义: char *str_cat( char *s, char