char函数

C语言各种变量的初始化

佐手、 提交于 2019-12-06 17:49:07
数值类变量初始化 整型、浮点型的变量可以在定义的同时进行初始化,一般都初始化为 0 。 int inum = 0 ; float fnum = 0.00f ; double dnum = 0.00 ; 字符型变量初始化 字符型变量也可在定义的同时进行初始化,一般初始化为 '\0' 。 char ch = '\0' ; 字符串初始化 字符串初始化的方法比较多,我这里简单介绍三种,因为字符串本质上是由一个个字符组成的字符数组,所以其初始化的最终目的, 就是将字符数组里面的一个个字符都初始化为 '\0' 。 方法一 :使用空的字符串 "" 。 char str [ 10 ] = "" ; 方法二 :使用 memset 。 char str [ 10 ] ; memset ( str , 0 , sizeof ( str ) ) ; 方法三 :写一个循环。 char str [ 10 ] ; for ( int i = 0 ; i < 10 ; i ++ ) { str [ i ] = '\0' ; } 这里比较推荐的是第二种初始化方法。也即使用 memset 进行初始化。 很多人对 memset 这个函数一知半解,只知道它可以初始化很多数据类型的变量,却不知道其原理是什么样的,这里做一下简要的说明: memset 是按照字节进行填充的。 先看下面的一段代码: int num;

Oracle PL/SQL常用函数列表

爱⌒轻易说出口 提交于 2019-12-06 17:37:45
常用字符函数 函数 描述 LOWER(char) 将字符串表达式 char 中的所有大写字母转换为小写字母 UPPER(char) 将字符串表达式 char 中的所有小写字母转换为大写字母 INITCAP(char) 首字母转换成大写 SUBSTR(char,start,length) 返回字符串表达式 char 中从第 start 开始的 length 个字符 LENGTH(char) 返回字符串表达式 char 的长度 LTRIM(char) 去掉字符串表达式 char 后面的空格 ASCII(char) 取 char 的 ASCII 值 CHAR(number) 取 number 的 ASCII 值 REPLACE(char,str1,str2) 将字符串中所有 str1 换成 str2 INSTR(char1,char2,start,times) 在 char1 字符串中搜索 char2 字符串, start 为执行搜索操作的起始位置, times 为搜索次数 常用日期函数 函数 描述 SYSDATE 返回系统当前日期和时间 NEXT_DAY(day,char) 返回 day 指定的日期之后并满足 char 指定条件的第一个日期, char 所指条件只能为星期几 LAST_DAY(day) 返回 day 日期所指定月份中最后一天所对应的日期 ADD_MONTH(day,n)

exec函数

时光毁灭记忆、已成空白 提交于 2019-12-06 15:01:39
目录 exec函数 原型 解释 继承的属性 权限位的设置 title: exec函数 date: 2019/12/5 19:40:51 toc: true --- exec函数 原型 int execl(const char *pathname, const char *arg0, ... /* (char *)0 */ ); int execv(const char *pathname, char *const argv[]); int execle(const char *pathname, const char *arg0, ... /* (char *)0, char *const envp[] */ ); int execve(const char *pathname, char *const argv[], char *const envp[]); int execlp(const char *filename, const char *arg0, ... /* (char *)0 */ ); int execvp(const char *filename, char *const argv[]); int fexecve(int fd, char *const argv[], char *const envp[]); 解释 pathname 是路径, filename

c/c++里的 堆区 栈区 静态区 文字常量区 程序代码区

随声附和 提交于 2019-12-06 14:58:57
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由 编译器 自动分配释放 ,存放 函数 的参数值, 局部变量 的值等 。其操作方式类似于数据结构中的栈。 堆(heap):由malloc,new等分配的空间的地址,地址由低向高增长(程序员释放)。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于 链表 。 栈(stack):是自动分配变量,以及函数调用所使用的一些空间(所谓的局部变量),地址由高向低减少; 3、全局区(静态区)(static)— 全局变量和 静态变量 的存储是放在一块的, 初始化的 全局变量 和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放 。-->分别是data区,bbs区 4、文字常量区 — 常量字符串就是放在这里的,程序结束后由系统释放 。-->coment区 5、程序代码区 — 存放函数体的二进制代码。-->code区 二、例子程序 这是一个前辈写的,非常详细 //main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main() { int b; 栈 char s[] = "abc"; 栈 char *p2; 栈 char *p3 =

strtok()

走远了吗. 提交于 2019-12-06 14:41:08
描述 C 库函数 char *strtok(char *str, const char *delim) 分解字符串 str 为一组字符串, delim 为分隔符。 声明 下面是 strtok() 函数的声明。 char *strtok(char *str, const char *delim) 参数 str -- 要被分解成一组小字符串的字符串。 delim -- 包含分隔符的 C 字符串。 返回值 该函数返回被分解的第一个子字符串,如果没有可检索的字符串,则返回一个空指针。 实例 下面的实例演示了 strtok() 函数的用法。 #include <string.h> #include <stdio.h> int main () { char str[80] = "This is - www.runoob.com - website"; const char s[2] = "-"; char *token; /* 获取第一个子字符串 */ token = strtok(str, s); /* 继续获取其他的子字符串 */ while( token != NULL ) { printf( "%s\n", token ); token = strtok(NULL, s); } return(0); } 参考资料: 菜鸟教程 来源: https://www.cnblogs.com

【MySQL】show global status命令

99封情书 提交于 2019-12-06 14:34:17
原因 想通过 show global status 来完成对MySQL关键指标的采集,但是不知道这个命令频繁执行是否会造成性能压力,网上也没有搜到相关的资料。 mysql_exporter 工具也是使用的这个命令。 结论 取出值的时候可能对心痛有影响 思路 查看5.7源码 vim mysql-server-mysql-5.7.21/sql/mysqld.cc /// 从6801行开始定义了输出的性能指标结构体 /// 结构体定义可以简单理解为 /* struct st_mysql_show_var { const char *name; char *value; enum enum_mysql_show_type type; }; */ /* Variables shown by SHOW STATUS in alphabetical order */ SHOW_VAR status_vars[]= { {"Aborted_clients", (char*) &aborted_threads, SHOW_LONG, SHOW_SCOPE_GLOBAL}, #ifndef EMBEDDED_LIBRARY {"Aborted_connects", (char*) &show_aborted_connects, SHOW_FUNC, SHOW_SCOPE_GLOBAL}, #endif

strchr()

给你一囗甜甜゛ 提交于 2019-12-06 12:57:22
描述 C 库函数 char *strchr(const char *str, int c) 在参数 str 所指向的字符串中搜索第一次出现字符 c (一个无符号字符)的位置。该函数返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符则返回 NULL。 实例 #include <stdio.h> #include <string.h> int main () { const char str[] = "http://www.runoob.com"; const char ch = '.'; char *ret; ret = strchr(str, ch); printf("|%c| 之后的字符串是 - |%s|\n", ch, ret); return(0); } 来源: https://www.cnblogs.com/xumaomao/p/11985594.html

String 库函数部分函数源码

有些话、适合烂在心里 提交于 2019-12-06 12:30:12
* linux/lib/string.c * * Copyright (C) 1991, 1992 Linus Torvalds */ /* * stupid library routines.. The optimized versions should generally be found * as inline code in <asm-xx/string.h> * * These are buggy as well.. * * * Fri Jun 25 1999, Ingo Oeser <ioe@informatik.tu-chemnitz.de> * - Added strsep() which will replace strtok() soon (because strsep() is * reentrant and should be faster). Use only strsep() in new code, please. */ #include <linux/types.h> #include <linux/string.h> #include <linux/ctype.h> #include <malloc.h> /** * strncasecmp - Case insensitive, length-limited string comparison *

c++ 关于char *的类库函数

空扰寡人 提交于 2019-12-06 11:49:17
一,拷贝: char stpcpy(char *dest,const char *src) 将字符串src复制到dest char strncpy(char *dest,const char *src,size_t maxlen) 复制src中的前maxlen个字符到dest中 char strnset(char *s,int ch,size_t n) 将字符串s的前n个字符置于ch中 void *memchr(void *s,char ch,unsigned n) void *memcmp(void *s1,void *s2,unsigned n) int memicmp(void *s1,void *s2,unsigned n) void *memmove(void *destin,void *source,unsigned n) void *memcpy(void *destin,void *source,unsigned n) void *memset(void *s,char ch,unsigned n) 这些函数,mem…系列的所有成员均操作存贮数组.在所有这些函数中,数组是n字节长. memcpy从source复制一个n字节的块到destin.如果源块和目标块重迭,则选择复制方向, 以例正确地复制覆盖的字节. memmove与memcpy相同.

[翻译]SQL注射技术总结文档

ε祈祈猫儿з 提交于 2019-12-06 11:22:21
[ 翻译 ]SQL 注射技术总结文档 ++++++++++++++++++++++++++++ By zeroday. zeroday [ at ] blacksecurity.org --------------------------------------------- 翻译:浪迹天 .Iceskysl@1.S.T Iceskysl_At_www.iceskysl.net 时间: 2006.5.21 写在前面: 最近看了不少老外写的东西,看时间相同的技术当铺比我们早了好长一段时间,比如 ASP 的 SQL 注射国外 02 年就出现了, PHP 的也在 04 年出现,而我们一直到 05 年才接触到,看看比人家晚了多少时间呀! 为了尽快了解最新的技术动态,我坚持看 E 文资料,有的很长,有的很短,本人时间有限,不可能一一翻译过来,只能挑选自己认为比较适合大家看的东西翻译过来,希望你能从中学到东西。 PS :本人英语水平有限,很多都是按照我的理解做的模糊翻译,若有不当,敬请指正,谢谢! ====|| 目录 ||===== -------------------- 1 、简介 2 、漏洞测试 3 、收集信息 4 、数据类型 5 、抓取密码 6 、创建数据库帐号 7 、 MYSQL 利用 8 、服务名和配置 9 、在注册表中找 VNC 密码 10 、刺穿 IDS 认证 11 、在