char函数

adworld-pwn新手练习区

给你一囗甜甜゛ 提交于 2020-01-24 18:03:45
get_shell 学会第一步nc CGfbs IDA反汇编得到伪代码: int __cdecl main(int argc, const char **argv, const char **envp) { int v4; // [esp-82h] [ebp-82h] int v5; // [esp-7Eh] [ebp-7Eh] __int16 v6; // [esp-7Ah] [ebp-7Ah] int v7; // [esp-78h] [ebp-78h] unsigned int v8; // [esp-14h] [ebp-14h] ​ v8 = __readgsdword(0x14u); setbuf(stdin, 0); setbuf(stdout, 0); setbuf(stderr, 0); v4 = 0; v5 = 0; v6 = 0; memset(&v7, 0, 0x64u); puts("please tell me your name:"); read(0, &v4, 0xAu); puts("leave your message please:"); fgets((char *)&v7, 100, stdin); printf("hello %s", &v4); puts("your message is:"); printf((const char *)

让人又爱又恨的char(字符型)

我的未来我决定 提交于 2020-01-24 15:35:23
今天来总结一下char型,平常写算法的时候对这个东西感觉都有一点绕着走,说到底还是对这部分的知识不熟悉所以有点怕他,不过以后不要怕,今天来总结一下 首先,说到字符型数据类型,char型,恩它是一种数据类型 然后,就是 字符型变量 字符型变量的重点是将一个字符存入字符变量中,实际上存入的不是这个字符的形,而是这个字符的ASCII码 输入:getchar(); 输出:putchar(); getchar和scanf的区别在于他可以输入空格 字符型常量: 1.普通 'a' 2. 转义   1.‘\t’   斜杠+字符   2.‘\’+字符ANSCII码, \ddd八进制对应的字符 字符串常量:   "Abdf"   "A"和'A'的区别 注意:::不存在字符串变量,只存在字符串常量 存储一个字符串需要字符数组 字符数组: char a[5]   1.字符数组的初始化     1.用字符常量初始化       char a[8]={'C',‘h’,'i','n','a'}       如果不初始化,数组各元素的值是随机的       2.若部分初始化,则后面的自动为'\0'空字符     2.用字符串常量初始化     char a[8]={"china"};     char a[8]="China";   `   !!!!赋值操作绝对不能用字符串常量,但可用字符常量赋值    

指针实验报告

南楼画角 提交于 2020-01-24 10:56:13
指针实验报告 一、 题目分析 题目一 6-1 计算两数的和与差(10 分) 本题要求实现一个计算输入的两数的和与差的简单函数。 函数接口定义: void sum_diff( float op1, float op2, float *psum, float *pdiff ); 其中 op1 和 op2 是输入的两个实数, *psum 和 *pdiff 是计算得出的和与差。 裁判测试程序样例: #include <stdio.h> void sum_diff( float op1, float op2, float *psum, float *pdiff ); int main() { float a, b, sum, diff; scanf("%f %f", &a, &b); sum_diff(a, b, &sum, &diff); printf("The sum is %.2f\nThe diff is %.2f\n", sum, diff); return 0; } /* 你的代码将被嵌在这里 */ 本题 PTA 提交列表 程序设计思路(流程图) 子函数即进行两个数的相加减 ……思路简单,所以流程图略…… 最终程序如下: void sum_diff( float op1, float op2, float *psum, float *pdiff ) { *psum=op1+op2

SQLServer基本函数

家住魔仙堡 提交于 2020-01-24 08:44:24
1.字符串函数长度与分析用 datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 substring(expression,start,length) 不多说了,取子串 right(char_expr,int_expr) 返回字符串右边int_expr个字符 字符操作类 upper(char_expr) 转为大写 lower(char_expr) 转为小写 space(int_expr) 生成int_expr个空格 replicate(char_expr,int_expr)复制字符串int_expr次 reverse(char_expr) 反转字符串 stuff(char_expr1,start,length,char_expr2) 将字符串char_expr1中的从 start开始的length个字符用char_expr2代替 ltrim(char_expr) rtrim(char_expr) 取掉空格 ascii(char) char(ascii) 两函数对应,取ascii码,根据ascii吗取字符 字符串查找 charindex(char_expr,expression) 返回char_expr的起始位置 patindex("%pattern%",expression) 返回指定模式的起始位置,否则为0 2.数学函数 abs(numeric

oracle中处理日期大全

限于喜欢 提交于 2020-01-24 08:15:14
oracle自带的函数很多很好用。   24小时格式下时间范围为: 0:00:00 - 23:59:59....   12小时格式下时间范围为: 1:00:00 - 12:59:59 ....   1.日期和字符转换函数用法(to_date,to_char)   2.select to_char( to_date(222,'J'),'Jsp') from dual   显示Two Hundred Twenty-Two   3.求某天是星期几 select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual; 星期一 select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual; monday   设置日期语言 ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';   也可以这样 TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')   4.两个日期间的天数 select floor(sysdate - to_date('20020405','yyyymmdd'

C语言文件操作解析

爷,独闯天下 提交于 2020-01-24 04:12:42
转自:http://www.cnblogs.com/dolphin0520/archive/2011/10/05/2199396.html C语言文件操作解析(一) 在讨论C语言文件操作之前,先了解一下与文件相关的东西。 一.文本文件和二进制文件 文本文件的定义:由若干行字符构成的计算机文件,存在于计算机系统中。文本文件只能存储文件中的有效字符信息,不能存储图像、声音等信息。狭义上的二进制文件则指除开文本文件之外的文件,如图片、DOC文档。 事实上,无论是上面所定义的文本文件还是二进制文件,在计算机中存储都是以二进制的形式存储的,因此其本质并没有区别。所以广义上的二进制文件便指所有的文件。 通常意义下,我们所说的文本文件指只包含了纯文本信息的文件(通过手动编辑完成,包含的都是可显字符),二进制文件特指文件里面存储的是二进制代码的文件。至于为什么在计算机内存储的都是二进制数据,而给我们所呈现的确是文字、图像等信息,这跟计算机硬件组成有关系,因为计算机里面的元件是晶体管,其只有两种稳定的状态,因此二进制的0和1能表示其状态。很多个晶体管的不同状态的组合便呈现给我们不同的信息了。下面以汉字在计算机中的表示为例。 二.汉字在计算机中的表示 用计算机去处理汉字信息,必须对汉字进行编码,变成能被计算机识别的二进制。汉字编码主要有输入码、机内码、字形码三种。分别有不同的作用。 输入码

C语言文件操作

戏子无情 提交于 2020-01-24 04:10:26
C语言中没有输入输出语句,所有的输入输出功能都用ANSI C提供的一组标准库函数来实现。文件操作标准库函数有:       文件的打开操作 fopen 打开一个文件       文件的关闭操作 fclose 关闭一个文件       文件的读写操作 fgetc 从文件中读取一个字符               fputc 写一个字符到文件中去               fgets 从文件中读取一个字符串               fputs 写一个字符串到文件中去               fprintf 往文件中写格式化数据               fscanf 格式化读取文件中数据               fread 以二进制形式读取文件中的数据               fwrite 以二进制形式写数据到文件中去               getw 以二进制形式读取一个整数               putw 以二进制形式存贮一个整数     文件状态检查函数 feof 文件结束               ferror 文件读/写出错               clearerr 清除文件错误标志               ftell 了解文件指针的当前位置       文件定位函数 rewind 反绕               fseek 随机定位

adworld-re新手练习区

懵懂的女人 提交于 2020-01-24 00:51:12
RE re1 下载得到exe文件,运行: 使用exeinfo分析,发现是32位无壳的exe, 拖入IDA,f5反编译: int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // eax __int128 v5; // [esp+0h] [ebp-44h] __int64 v6; // [esp+10h] [ebp-34h] int v7; // [esp+18h] [ebp-2Ch] __int16 v8; // [esp+1Ch] [ebp-28h] char v9; // [esp+20h] [ebp-24h] ​ _mm_storeu_si128((__m128i *)&v5, _mm_loadu_si128((const __m128i *)&xmmword_413E34)); v7 = 0; v6 = qword_413E44; v8 = 0; printf(&byte_413E4C); printf(&byte_413E60); printf(&byte_413E80); scanf("%s", &v9); v3 = strcmp((const char *)&v5, &v9); if ( v3 ) v3 = -(v3 < 0) | 1; if ( v3 ) printf

c++刷题常用技巧

[亡魂溺海] 提交于 2020-01-24 00:28:43
记录常用的好用的c++刷题技巧以及方法的库函数 严格遵顼 ANSI-C 标准 技巧 库函数 技巧 库函数 此部分以头文件分类 <cctype> 功能 函数原型 判断一个字符是否是字母或者数字 int isalnum ( int c ); 判断一个字符是否是一个字母 int isalpha ( int c ); 判断一个字符是否是一个控制字符 int iscntrl ( int c ); 判断一个字符是否是一个十进制数字 int isdigit ( int c ); 判断一个字符是否是一个可视字符(不是空白字符或控制字符) int isgraph ( int c ); 判断一个字符是否是一个小写字母 int islower ( int c ); 判断一个字符是否是一个大写字母 int isupper ( int c ); 判断一个字符是否是可打印的 int isprint ( int c ); 判断一个字符是否是标点符号 int ispunct ( int c ); 判断一个字符是否是空白字符 int isspace ( int c ); 判断一个字符是否是十六进制数字 int isxdigit ( int c ); 将一个字母转换为大写 int toupper ( int c ); 将一个字母转换为小写 int tolower ( int c ); 上述函数函数原型中,返回值均为

servicemanager之启动过程

爷,独闯天下 提交于 2020-01-24 00:19:03
相关代码文件如下: 代码路径 说明 frameworks/native/cmds/servicemanager/service_manager.c servicemanager守护进程启动文件 frameworks/native/cmds/servicemanager/binder.c servicemanager在实现时,并没有引用libbinder库,所以将一些和binder驱动交互的函数在该文件中实现 启动 int main ( int argc , char * * argv ) { struct binder_state * bs ; char * driver ; // 默认binder驱动的设备节点是/dev/binder if ( argc > 1 ) { driver = argv [ 1 ] ; } else { driver = "/dev/binder" ; } // 打开/dev/binder设备节点 bs = binder_open ( driver , 128 * 1024 ) ; if ( ! bs ) { // 显然,设备厂商可以有自己的binder驱动 # ifdef VENDORSERVICEMANAGER ALOGW ( "failed to open binder driver %s\n" , driver ) ; while ( true