char函数

SQLServer基本函数

人盡茶涼 提交于 2020-01-25 10:27:47
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

第九周

六眼飞鱼酱① 提交于 2020-01-25 09:01:56
第九周 这次作业属于哪个课程 C语言程序设计 这次作业要求在哪里 第九周作业 我在这个课程的目标是 学习结构 这个作业具体在那个方面帮助我实现目标 结构数组及结构指针的运用 参考文献 C语言程序设计 第九周基础作业1 按等级统计学生成绩 本题要求实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。 函数接口定义: int set_grade( struct student *p, int n ); 其中p是指向学生信息的结构体数组的指针,该结构体的定义为: struct student{ int num; char name[20]; int score; char grade; }; n是数组元素个数。学号num、姓名name和成绩score均是已经存储好的。set_grade函数需要根据学生的成绩score设置其等级grade。等级设置:85-100为A,70-84为B,60-69为C,0-59为D。同时,set_grade还需要返回不及格的人数。 裁判测试程序样例: #include <stdio.h> #define MAXN 10 struct student{ int num; char name[20]; int score; char grade; }; int set_grade( struct student *p, int n ); int main(

GCC编译选项

老子叫甜甜 提交于 2020-01-25 08:19:36
转载自http://www.cnblogs.com/xmphoenix/archive/2011/03/21/1989944.html gcc 提供了大量的警告选项,对代码中可能存在的问题提出警 告,通常可以使用 -Wall 来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration -Wcomment -Wformat -Wmain (only for C/ObjC and unless -ffreestanding) -Wmissing-braces -Wnonnull -Wparentheses -Wpointer-sign -Wreorder -Wreturn-type -Wsequence-point -Wsign-compare (only in C++) -Wstrict-aliasing -Wstrict-overflow=1 -Wswitch -Wtrigraphs -Wuninitialized (only with -O1 and above) -Wunknown-pragmas -Wunused-function -Wunused-label -Wunused

关于redis中SDS简单动态字符串

旧时模样 提交于 2020-01-25 04:55:00
1、SDS 定义 在C语言中,字符串是以’\0’字符结尾(NULL结束符)的字符数组来存储的,通常表达为字符指针的形式(char *)。它不允许字节0出现在字符串中间,因此,它不能用来存储任意的二进制数据。 sds的类型定义 typedef char *sds; 肯定有人感到困惑了,竟然sds就等同于char *? sds和传统的C语言字符串保持类型兼容,因此它们的类型定义是一样的,都是char *,在有些情况下,需要传入一个C语言字符串的地方,也确实可以传入一个sds。 但是sds和char *并不等同,sds是Binary Safe的,它可以存储任意二进制数据,不能像C语言字符串那样以字符’\0’来标识字符串的结束,因此它必然有个长度字段,这个字段在header中 sds的header结构 /* Note: sdshdr5 is never used, we just access the flags byte directly. * However is here to document the layout of type 5 SDS strings. */ struct __attribute__ ((__packed__)) sdshdr5 { unsigned char flags; /* 3 lsb of type, and 5 msb of string

Redis3.20阅读-SDS实现

好久不见. 提交于 2020-01-25 04:51:12
声明:这是本人参考黄建宏的《redis设计与实现》(源码版本是redis3.0)来学习redis3.20源码的笔记,如果有什么不对的地方,欢迎大家指正,大家一起学习、一起进步,QQ:499656254。 一、SDS介绍 SDS又叫简单动态字符串,在Redis中默认使用SDS来表示字符串。比如在Redis中的键值对中的键一般都是使用SDS来实现。首先需要说明的是在Redis中,字符串不是用传统的字符串来实现,而是Redis自己构建了一个结构来表示字符串。优点如下: 1、O(1)时间内获取字符串长度。(依据其结构特性,只需要访问其结构体成员len既可获得字符串长度) 2、SDS提供的一些API操作,是二进制安全的(也就是不会因为空格等特殊字符而中断字符串)、不会溢出(API操作会检查其长度) 3、减少了修改字符串时带来的内存重分配次数。 对于增长字符串其采用的策略是检查修改之后的长度大小,如果小于1024*1024,则分配2倍的修改后的长度+1 对于减少的字符串其并不立即释放空间,而是回归到alloc中去。 这个构建的结构在Redis3.20中的表示如下(和Redis2.x中还是有一定区别的): typedef char *sds; /* Note: sdshdr5 is never used, we just access the flags byte directly. *

Redis 设计与实现(第二章) -- SDS

微笑、不失礼 提交于 2020-01-25 04:44:46
概述 1.SDS介绍 2.SDS API 3.SDS与C的比较 SDS介绍 在C语言中,用来表达字符串的方式通常有两种, char *buf1= "redis"; char buf2[]= "redis"; 方式1,通过一个char指针指向一个字符串字面量,起内容无法改变,即无法通过buf1[1]='c'来改变内容,如果需要改变,需要将指针重新赋值,指向其他内存空间; 方式2,char数组,末尾有一个‘\0’来代表结束,但是不携带长度信息,在字符串操作时,比如strcat,可能会导致缓存区溢出。 在Redis里面C中的字符串字面量一般只用于不需要对字符串值修改的地方,比如打印日志: redisLog(REDIS_WARNING,'redis now is ready to exit,bye bye...') 当需要对字符串值进行修改时,会使用SDS结构来表示字符串值; 在Redis中,SDS用于很多地方,比如数据库中的键值,缓冲区,AOF缓冲区等。 可以说SDS是redis的基础。 可以看一下SDS的数据结构,在sds.h文件: struct sdshdr { unsigned int len; //记录buf数组中已经使用的字节数量,等于SDS的长度 unsigned int free; //buf数组中未使用的字节数量 char buf[]; //buf数组,用于存储字符串 }

怎样向文件读写字符(字符串)

烈酒焚心 提交于 2020-01-25 01:19:48
函数名 调用形式 功能 fgetc fgetc(fp) 从fp指向的文件读取一个字符 fputc fputc(ch,fp) 把字符ch写到文件指针变量fp所指向的文件中 fgets fgets(str,n,fp) 从fp指向的文件中读入一个长度为(n-1)的字符串,存放到字符数组str中,在str末尾添加一'\0' fputs fputs(str,fp) 把字符数组str写到fp所指向的文件中 1、向文件添加数据 #include <stdio.h>#include <stdlib.h>int main() { FILE *fp; char ch,filename[20]; printf("请输入所用的文件名:"); scanf("%s",filename); if((fp=fopen(filename,"a"))==NULL) //打开输出文件并使fp指向此文件 { printf("无法打开文件\n"); //如果文件出错,就输出此文件无法打开的信息 exit(0); //终止程序 } ch=getchar(); //用来接收最后输入的回车符 printf("请输入一个将要存储到磁盘的字符串(以#结束):"); ch=getchar(); //接收从键盘输入的第一个字符 while(ch!='#') //当输入'#'时结束循环 { fputc(ch,fp); /

函数之sql语句

女生的网名这么多〃 提交于 2020-01-25 01:11:17
1 函数 1.1 函数 函数一般是在数据上执行的,它给数据的转换和处理提供了方便。只是将取出的数据进行处理,不会改变数据库中的值。 函数 根据处理的数据分为单行函数和聚合函数( 组 函数) 组函数又被称作聚合函数,用于对多行数据进行操作,并返回一个单一的结果,组函数仅可用于选择列表或查询的 having 子句 单行函数对单个数值进行操作,并返回一个值。 dual 是 一个系统表。注意 用于 测试。 1.2 字符 相关 -- dual用于测试 select * from dual; -- 1.字符串连接 select concat('aa','12') from dual; select 'aa'||'12' from dual; -- 2.首字母大写 select initcap('abc') from dual; --- 把大写转化小写 select lower('ABc') from dual; select upper('abc') from dual; -- 把所有员工的姓名小写输出 select lower(e.ename),e.empno from emp e -- 3.填充字符lpad/rpad select lpad('sxt',5,'*') from dual; select rpad('sxt',5,'*') from dual; -- 4.去掉空白字符

数据结构与算法——暴力递归

偶尔善良 提交于 2020-01-25 00:41:15
暴力递归就是尝试 1, 把问题转化为规模缩小了的同类问题的子问题 2, 有明确的不需要继续进行递归的条件(base case) 3, 有当得到了子问题的结果之后的决策过程 4, 不记录每一个子问题的解 一定要学会怎么去尝试,因为这是动态规划的基础,这一内容我们将在提升班讲述 汉诺塔问题 打印n层汉诺塔从最左边移动到最右边的全部过程 public static void hanoi(int n) { if (n > 0) { func(n, "左", "右", "中"); } } // 1~i 圆盘 目标是from -> to, other是另外一个 public static void func(int N, String from, String to, String other) { if (N == 1) { // base System.out.println("Move 1 from " + from + " to " + to); } else { func(N - 1, from, other, to); System.out.println("Move " + N + " from " + from + " to " + to); func(N - 1, other, to, from); } } 打印一个字符串的全部子序列,包括空字符串 public static

第七周作业

99封情书 提交于 2020-01-24 20:06:54
作业头 uploading-image-634184.png 基础题 基础作业 6-2 每个单词的最后一个字母改成大写 (10 分) 函数fun的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。 函数接口定义: void fun( char *p ); 其中 p 是用户传入的参数。函数将 p所指字符串中每个单词的最后一个字母改成大写。 裁判测试程序样例: include <stdio.h> void fun( char *p ); int main() { char chrstr[64]; int d ; gets(chrstr); d=strlen(chrstr) ; chrstr[d] = ' ' ; chrstr[d+1] = 0 ; fun(chrstr); printf("\nAfter changing: %s\n", chrstr); return 0; } /* 请在这里填写答案 */ 实验代码 include <stdio.h> void fun( char *p ); int main() { char chrstr[64]; int d ; gets(chrstr); d=strlen(chrstr) ; chrstr[d] = ' ' ; chrstr[d+1] = 0 ; fun(chrstr);