字符串函数

笔记strlen() ,sizeof(),strcpy(),strncpy(),strcat()

依然范特西╮ 提交于 2020-03-13 12:47:18
strlen函数的意思是测试字符串的字符长度,不含字符串结束标志的。 int strlen( const char *str) { assert(str != NULL); int len; while((*str++) != '\0') { len++; } return len; } sizeof是运算符,它的结果是字符串在内存中的所占字节大小,它要把\0算进去的。 strcpy函数原型 ( strcpy(s1,s2); strcpy函数的意思是:把字符串s2中的内容copy到s1中,连字符串结束标志也一起copy ) char *strcpy(char *strDest, const char *strSrc)//strDest为目标,strSrc为源 { assert((strDest!=NULL) && (strSrc !=NULL)); //如果两个为空则不用复制,直接中止 char *address = strDest; //用address指向strDest开始地址 while( (*strDest++ = * strSrc++) != ‘\0’ ) //复制,直到源串结束; NULL ; //空操作 return address ; //返回strDest开始地址 } } strncpy函数 : 利用标准库函数strncpy(),可以

java-05String课堂练习

烈酒焚心 提交于 2020-03-13 11:14:06
1.阅读以下代码查看输出结果 public class StringPool { public static void main(String args[]) { String s0="Hello"; String s1="Hello"; String s2="He"+"llo"; System.out.println(s0==s1);//true System.out.println(s0==s2);//true System.out.println(new String("Hello")==new String("Hello"));//false } } 分析:在java中,相同的字符串只保存了一份,这是为了节约内存。也就是说s0、s1、s2地址相同,引用了同一对象。而程序最后一行的new新开辟了存储空间,同之前的字符串是不同的对象。所以输出为false。 若改为 public class StringPool { public static void main(String args[]) { String s1="a"; String s2=s1; System.out.println(s1==s2);//true s1+="b"; System.out.println(s1==s2);//false System.out.println(s1=="ab"); System

php中正则表达式详解

佐手、 提交于 2020-03-13 08:46:50
概述 正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。常用的语言基本上都有正则表达式,如JavaScript、java等。其实,只有了解一种语言的正则使用,其他语言的正则使用起来,就相对简单些。文本主要围绕解决下面问题展开。 有哪些常用的转义字符 什么是限定符与定位符 什么是单词定位符 特殊字符有哪些 什么是逆向引用以及怎样使用逆向引用 匹配模式 php中怎样使用正则表达式 php中哪些方面需要用到正则 怎样进行邮箱匹配,url匹配,手机匹配 怎样使用正则替换字符串中某些字符 贪婪匹配与惰性匹配区别 正则表达式之回溯与固态分组 正则优缺点有哪些 正则表达式的基本知识汇总 行定位符(^与$) 行定位符是用来描述字符串的边界。 “$” 表示行结尾 “^” 表示行开始如 "^de" ,表示以de开头的字符串 "de$" ,表示以de结尾的字符串。 单词定界符 我们在查找的一个单词的时候,如an是否在一个字符串”gril and body”中存在,很明显如果匹配的话,an肯定是可以匹配字符串“gril and body”匹配到,怎样才能让其匹配单词,而不是单词的一部分呢?这时候,我们可以是哟个单词定界符\b。 \ban\b 去匹配”gril and body”的话,就会提示匹配不到。 当然还有一个大写的\B,它的意思,和\b正好相反

SQL Server,MySQL,Oracle三者的区别

僤鯓⒐⒋嵵緔 提交于 2020-03-13 07:28:39
SQL Server,MySQL,Oracle三者的区别 Oracle Oracle 能在所有主流平台上运行(包括Windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持,Oracle并行服务器通过使一组结点共享同一簇中的工作来扩展Windows NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果Windows NT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。Oracle获得最高认证级别的ISO标准认证.Oracle性能最高,保持开放平台下的TPC-D和TPC-C的世界记录Oracle多层次网络计 算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。 Oracle 在兼容性、可移植性、可联结性、高生产率上、开放性也存在优点。Oracle产品采用标准SQL,并经过美国国家标准技术所(NIST)测试。与 IBM SQL/DS,DB2,INGRES,IDMS/R等兼容。 Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在70种以上 不同的大、中、小型机上;可在VMS、DOS、UNIX、WINDOWS等多种操作系统下工作。能与多种通讯网络相连,支持各种协议(TCP/IP、 DECnet、LU6.2等)。提供了多种开发工具

php中正则表达式详解

巧了我就是萌 提交于 2020-03-13 06:24:14
概述 正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。常用的语言基本上都有正则表达式,如JavaScript、java等。其实,只有了解一种语言的正则使用,其他语言的正则使用起来,就相对简单些。文本主要围绕解决下面问题展开。 有哪些常用的转义字符 什么是限定符与定位符 什么是单词定位符 特殊字符有哪些 什么是逆向引用以及怎样使用逆向引用 匹配模式 php中怎样使用正则表达式 php中哪些方面需要用到正则 怎样进行邮箱匹配,url匹配,手机匹配 怎样使用正则替换字符串中某些字符 贪婪匹配与惰性匹配区别 正则表达式之回溯与固态分组 正则优缺点有哪些 正则表达式的基本知识汇总 行定位符(^与$) 行定位符是用来描述字符串的边界。 “$” 表示行结尾 “^” 表示行开始如 "^de" ,表示以de开头的字符串 "de$" ,表示以de结尾的字符串。 单词定界符 我们在查找的一个单词的时候,如an是否在一个字符串”gril and body”中存在,很明显如果匹配的话,an肯定是可以匹配字符串“gril and body”匹配到,怎样才能让其匹配单词,而不是单词的一部分呢?这时候,我们可以是哟个单词定界符\b。 \ban\b 去匹配”gril and body”的话,就会提示匹配不到。 当然还有一个大写的\B,它的意思,和\b正好相反

ES6中新加命令

拈花ヽ惹草 提交于 2020-03-13 00:59:34
1.2、let 和 const 命令   var     var 有一个问题,就是定义的变量有时会莫名奇妙的成为全局变量。例如这样的一段代码: 1 for(var i = 0; i < 5; i++ ) { 2 console.log(i); 3 } 4 console.log("循环外” + i);            这样的变量成了全局变量,造成了困扰。     可以看出,在循环外部也可以获取到变量i的值,显然变量i的作用域范围太大了,在做复杂页面时,会带来很大的问题。    let      let 所声明的变量,只在 let 命令所在的代码块内有效。我们把刚才的 var 改成 let 试试: for(let i = 0; i < 5; i++){ console.log(i); }console.log("循环外:" + i)     这样,就把变量的i的作用域控制在了循环内部。 const     const 声明的变量是常量,不能被修改,类似于java中final关键字 const a = 1; console.log("q = ", a); // 给a 赋值 a = 2; console.log("a = " , a);     可以看到,变量a的值是不能修改的。 1.3、字符串扩展   在ES6中,为字符串扩展了几个新的API:   includes()

《自拍教程42》adb命令_一键读取系统版本信息

ⅰ亾dé卋堺 提交于 2020-03-12 22:15:08
Android系统测试, 开始测试前,我们需要先确认所测试的系统版本是否正确, 还有报bug的时候,开发需要你提供具体的系统版本信息。 还有系统打版时间等, 不同的版本修复了不同的bug,合入了不同的新功能等, 如果测试人员测试的系统版本都不对,会直接被开发怼到哭。 如何一键获取Android系统版本信息呢? 一般我们通过读取/system/build.prop这个配置文件来获取, 这套方案基本适合所有的Android终端设备获取系统版本信息。 准备阶段 adb shell cat /system/build.prop,可以获取系统版本信息。 os.popen()可以轻易地获取以上命令的输出字符串。 python的re正则表达式可以轻易地进行数据匹配,查找等强大的字符串处理 build.prop文件介绍 build.prop是Android系统中的一个重要的属性文件, 其是在版本编译时自动生成的一个属性文件, 记录了包括系统版本,系统编译时间,Android版本号等, 刷机完成后,一般存储在Android设备的/system/build.prop文件。 我们可以通过cat /system/build.prop命令查看这个文件. 比如魅族Note5的 build.prop文件(可点击下载) os.popen()函数介绍 之前的课程,我们一直用的是os.system()函数执行命令行,

截取中文字符串的js方法

纵然是瞬间 提交于 2020-03-12 20:13:45
有时在显示某段文字的时候,可能会太长,影响我们页面的显示效果。如果仅是英文,那么我们可以用String.substring(start, end)函数就已经够用了。但是通常我们都会遇到既有英文,又有汉字的情况。而汉字是占用2个字节的,如果用String.substring(start, end)截取字符串的话,会发现汉字截取后比英文截取后个数虽然相同,但是长度还是长出去不少(具体要视字符个数来决定)。 为了解决这个问题昨天写了根据字节数截取字符串的函数。 具体使用很简单,跟String.subString(start, end)一样使用就可。比如:var str = "诶必塞第衣爱抚即"; var str1 = str.subCHStr(2, 2); var str2 = str.subCHString(2, 4); alert(str1 + " == " + str2); Code 1 Code 2 // 计算字符串长度 3 String.prototype.strLen = function () { 4 var len = 0 ; 5 for ( var i = 0 ; i < this .length; i ++ ) { 6 if ( this .charCodeAt(i) > 255 || this .charCodeAt(i) < 0 ) len += 2 ; else

sql常用函数instr()和substr()

你。 提交于 2020-03-12 19:57:31
Decode decode(条件,值1,翻译值1,值2,翻译值2,...,缺省值) 该函数与程序中的 If...else if...else 意义一样 NVL 格式: NVL( string1, replace_with) 功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。 注意事项:string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数进行类型转换。 select nvl(sum(t.dwxhl),1) from tb_jhde t 就表示如果sum(t.dwxhl) = NULL 就返回 1 Oracle 在NVL函数的功能上扩展,提供了NVL2函数 NVL2 nvl2 (E1, E2, E3) 的功能为:如果E1为NULL,则函数返回E3,否则返回E2 结合 Decode 和 NVL等函数 常常结合使用,例如 select monthid,decode(nvl(sale,6000),6000,'NG','OK') from output sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1, 如果取较小值就是 select monthid,decode(sign(sale-6000),-1,sale,6000) from

JS 删除字符串最后一个字符的几种方法

a 夏天 提交于 2020-03-12 19:43:11
字符串:string s = "1,2,3,4,5," 1、用的最多的是Substring s=s.Substring(0,s.Length-1) 2、用 RTrim,原来只用来删除最后的空格,也没有仔细看过其它的用法,才发现可以直接trim掉一些字符 s=s.ToString().RTrim(',') 扩展 删除空格 function trim(str){ //删除左右两端的空格 return str.replace(/(^\s*)|(\s*$)/g, ""); } function ltrim(str){ //删除左边的空格 return str.replace(/(^\s*)/g,""); } function rtrim(str){ //删除右边的空格 return str.replace(/(\s*$)/g,""); } 3、用TrimEnd,这个东西和RTrim差不多,区别是这个传递的是一个字符数组,而RTrim可以是任何有效的字符串 s=s.TrimEnd(',') //如果要删除"5,",则需要这么写 char[]MyChar= {'5',','}; s=s.TrimEnd(MyChar); //s="1,2,3,4" 类似函数: TrimStart,LTrim等 还有一个TrimToSize对提高性能有微弱的好处.... string.TrimEnd()