字符串函数

Go:标准库

空扰寡人 提交于 2020-03-11 01:19:31
参考: 知乎 参考: Go语言标准库 参考: Go标准库 文章目录 1、文本 1、strings — 字符串操作 1、字符串比较 2、是否存在某个字符 3、子串出现次数 4、字符串分割为[]string 5、字符串是否有某个前缀(后缀) 1、文本 1、strings — 字符串操作 1、字符串比较 字符串大小比较: /* Compare 函数,用于比较两个字符串的大小,如果两个字符串相等,返回为 0。 * 如果 a 小于 b ,返回 -1 ,反之返回 1 。 * 不推荐使用这个函数,直接使用 == != > < >= <= 等一系列运算符更加直观。 */ func Compare ( a , b string ) int 字符串相等比较: // EqualFold 函数,计算 s 与 t 忽略字母大小写后是否相等。 func EqualFold ( s , t string ) bool 2、是否存在某个字符 本质上他的底层实现也是通过遍历string数组去获取包含的字符串下标,如果返回正数下标则表示存在,否则表示不存在。 字符串包含: 官方注释: Contains reports whether subslice is within b. // 子串 substr 在 s 中,返回 true func Contains ( s , substr string ) bool

jQuery Ajax 相关知识一

核能气质少年 提交于 2020-03-10 20:06:30
一、Ajax请求 1、jQuery.ajax([options]) 通过 HTTP 请求加载远程数据。 jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。 最简单的情况下,$.ajax()可以不带任何参数直接使用。 注意 ,所有的选项都可以通过$.ajaxSetup()函数来全局设置。 回调函数 如果要处理$.ajax()得到的数据,则需要使用回调函数。beforeSend、error、dataFilter、success、complete。 beforeSend 在发送请求之前调用,并且传入一个XMLHttpRequest作为参数。 error 在请求出错时调用。传入XMLHttpRequest对象,描述错误类型的字符串以及一个异常对象(如果有的话) dataFilter 在请求成功之后调用。传入返回的数据以及"dataType"参数的值。并且必须返回新的数据(可能是处理过的)传递给success回调函数。 success 当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。 complete 当请求完成之后调用这个函数,无论成功或失败。传入XMLHttpRequest对象

关于对输入字符串的统计

喜欢而已 提交于 2020-03-10 19:35:14
先说一下第一次敲这个题目的想法,因为不熟悉gechar()的使用,所以构思先要求输入字符串长度n,然后输入字符串,将字符串存入事先定义好的一维数组中,然后写循环再对数组中字符进行判断,对库函数判断数字以及判断字母函数不熟悉,所以自行将判断写为根据ASCII码来判断。 可想而知的问题就是先行定义的数组定义多大,不论多大都不能保证一定符合输入要求,所以是较严重的问题。 后来了解后的另一个问题就是在刚开始的代码中,判断是否为字母时采用字母连续范围取值判断,就是对应字符c>=‘a’&&c<=='z’的方法进行判断,但是在其他系统中字母之间并非一定连续,所以可能会产生错误。 再有就是不调用库函数全部自己写代码过于繁琐,当然相比而言这个问题不算大 修正后代码 void CountStr()//定义函数名 { char c; int num = 0;//数字统计 int alpha = 0;//字母统计 int blank = 0;//空格统计 int other = 0;//其他统计 while((c=getchar()) != '\n')//从键盘获得字符,当回车时停止 { if(isalpha(c))//使用库函数判断获得字母是否为字母、数字、空格、其他符号 { alpha ++;//对应统计变量逐次加一 } else if(isdigit(c)) { num ++; } else if

21. re模块

时光毁灭记忆、已成空白 提交于 2020-03-10 19:30:47
一、正则 1. 字符 元字符 匹配内容 . 匹配出换行外任意字符 \w 匹配字母或数字或下划线 \s 匹配任意空白符 \d 匹配数字 \n 匹配一个换行符 \t 匹配一个制表符 \b 匹配一个单词的结尾 ^ 匹配指定字符的开始 $ 匹配字符串的结尾 \W 匹配非字母数字下划线 \D 匹配非数字 \S 匹配非空白符 a | b 匹配字符a或字符b () 匹配括号内的表达式,也是一个组 [...] 匹配字符组中的字符 [^...] 匹配除了字符组中的字符其他所有字符 2. 量词 量词 匹配内容 * 重复0或更多次 + 重复1或更多次 ? 重复0或1次 {n} 重复n次 {n, } 重复n或更多次 {n, m} 重复n到m次 3. 运用 import re string_test = "hello" (1) . string_1 = re.findall('.', string_test) print(string_1) >['h', 'e', 'l', 'l', 'o'] (2) ^ string_2 = re.findall('^h', string_test) print(string_2) >['h'] (3) $ string_3 = re.findall('o$', string_test) print(string_3) >['o'] (4) * - 当匹配单个字符的时候

typeOf操作符及数据类型

此生再无相见时 提交于 2020-03-10 18:06:14
一、数据类型 数据类型:Undefined 类型, Null 类型, Boolean 类型, Number 类型, String 类型, Object 类型 二、typeOf操作符 定义:typeOf操作符是用来检测变量的数据类型,使typeOf变量返回以下字符串: 字符串 描述 undefined 未定义 boolean 布尔值 string 字符串 number 数值 object 对象或者null function 函数 例子: var a; alert(typeOf a);//a是Undefied类型,值是undefined,类型返回的字符串是undefined. var a = true; alert(typeOf a);//a是Boolean类型,值是true,类型返回的字符串是boolean. var a = "雅雅"; alert(typeOf a); //a是String类型,值是‘雅雅’,类型返回的字符串是string. var a = 50; alert(typeOf a);//a是Number类型,值是50,类型返回的字符串是number. var a = {}; alert(typeOf a);//a是Object类型,值是[object,object],类型返回的字符串是object. var a = new Object(); alert(typeOf

-Shell 教程 Bash 脚本 基础语法 MD

余生长醉 提交于 2020-03-10 18:03:37
目录 目录 Shell 简介 Shell 脚本 Shell 环境 第一个shell脚本 Shell 变量 定义变量 使用变量 只读变量 删除变量 Shell 字符串 单引号 双引号 字符串基本操作 Shell 数组 定义数组 数组的基本操作 Shell 注释 Shell 传递参数 特殊字符处理参数 $* 与 $@ 的异同点 Shell 基本运算符 算术运算符 关系运算符 布尔运算符 逻辑运算符 字符串运算符 文件测试运算符 Shell echo 命令 Shell printf 命令 格式替代符 使用案例 printf 的转义序列 Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 目录 Shell 简介 Shell 是一个用 C 语言 编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种 命令语言 ,又是一种 程序设计语言 。 Shell 是指一种 应用程序 ,这个应用程序提供了一个 界面 ,用户通过这个界面访问 操作系统内核的服务 。 Ken Thompson 的 sh 是第一种 Unix Shell, Windows Explorer 是一个典型的 图形界面 Shell 。 Shell 脚本 Shell 脚本

复习C++(四)复合类型①

风流意气都作罢 提交于 2020-03-10 13:35:57
一、数组 数组声明时,应指出: 1.存储在每个元素中值的类型 2.数组名 3.数组中的元素数(一般不能是变量,下文将介绍如何打破这一限制) 因为数组是使用其他类型(int,char,float等)来创建的,所以它是一种复合类型。C++数组从0开始编号。 数组的初始化 1.只有在定义数组时才能初始化,不能将一个数组赋给另一个数组。如果只对数组的一部分初始化,编译器会自动把其他元素赋0。如果想把所有数组元素赋0,只需将第一个元素赋0即可(或直接让{ }中为空)。 2.如果[ ]中为空,C++将自动计算元素个数(通过赋值的个数)。 3.禁止缩窄转换。 二、字符串 C-风格字符串结尾为空字符 \0。空字符标识字符串结尾,比如cout在输出时读取到\0才结束输出,否则将内存中随后的各个字节解释为要打印的字符,直到遇到\0。 字符串常量 用" ",双引号括起来的字符串叫字符串常量(或字符串字面值)。 这种方法不用显式地表示空字符\0。"A"不等于’A’,‘A’代表A的ASCII码,"A"实际代表字符串所在的内存地址。 字符串可以直接给数组赋值 例 1.char name[15]; name=“Leonard”; 这时,name[0]就是’L’ 字符串输入 1.cin使用空白(空格、Tab、回车)确定字符串的结束位置,即cin获取字符数组时只读取一个单词,并自动添加空字符。 2.面向行输入

Go语言中的字符和字符串

落爺英雄遲暮 提交于 2020-03-10 11:53:48
Go语言中的字符 在Go语言中,没有字符类型,字符类型是rune类型,rune是int32的别称。 下面用一个简单的程序来演示字符类型: package main import ( "fmt" "reflect" ) func main() { r := '我' fmt.Printf("%q的类型为:%t 二进制为:%b\n", r, r, r) rType := reflect.TypeOf(r).Kind() fmt.Printf("r的实际类型为:%s\n", rType) } 程序输出: '我'的类型为:%!t(int32=25105) 二进制为:110001000010001 r的实际类型为:int32 Go语言天生支持Unicode,那我产生一个问题:Unicode字符的长度是多少? 这个问题的问法有没有问题?其实仔细想想,这样问是有问题的。首先,Unicode的基础是一个有编号的字符集,在字符集之上又规定了模块化的编码等等技术层次,各种具体的编码形式并不一致。因此,严格来说,Unicode是没有“长度”这一说的,它是抽象的字符,只有Unicode的编码才有具体的字节长度。而且不同的编码实现,长度也不一样。 Unicode 目前规划的总空间是17个平面(平面0至16),每个平面有 65536 个码点。我们常用的平面0(「Basic Multilingual Plane」

17字符串函数

安稳与你 提交于 2020-03-10 11:11:35
1.计算字符数、字符串长度的函数 char_length(S) #计算字符串的字符数 length(S) #计算字符串的占用内存的字节数 2.合并字符串函数 concat(S1,S2...) #拼接字符串,如果后面存在NULL,则返回NULL concat_ws (X,S1,S2...) #连接符连接字符串,并以X为连接符,null不影响。 3.替换字符串函数 insert (S1,X,LEN,S2) #在S1中,以第X个字符串为起点向后LEN长度的字符串,替换为S2 replace (S,S1,S2) #在字符串S中,将所有的S1替换为S2 示例: SELECT insert("ABCDEFG",2,3,"123") 返回的结果为:A123EFG 4.截取字符串的函数 LEFT(S,N) #从左至右截取N个字符串 RIGHT(S,N) #从右至左截取N个字符串 5.重复生成字符串函数 repeat(S,N) #将S重复显示N遍 6.大小写转换函数 lower(X) / LCASE(X) #全部转换为小写 upper(X) / UCASE(X) #全部转换为大写 7.填充字符串的函数 LPAD(S1,LEN,S2) #将S1填充为长度为LEN的字符串,不足的以S2在左边填充 RPAD(S1,LEN,S2) #在右边填充 示例: SELECT LPAD("ABCD",10,"%")

scanf与printf用法详解

ⅰ亾dé卋堺 提交于 2020-03-10 09:10:36
一、scanf家族 1、scanf家族的原型 int scanf(char const *format,...); int fscanf(FILE *stream,char const *format,...); int sscanf(char const *buffer,char const *format,...); 每个原型中的省略号表示一个可变长度的指针列表。从输入转换而来的值逐个存储到这些指针指向的内存位置。由于C的参数传递都是传值调用决定了可变参数都是指针列表。注意:若给的不是指针,而是变量值。scanf将把变量值当做指针,在进行解引用时或者导致程序终止,或者导致不可预料的内存位置的数据被改写。 2、返回值 当格式化字符串format到达末尾或者读取的输入不再匹配格式字符串所指定的类型时,输入就停止,并返回被转换的输入值的数目,若在任何输入都没被转换之前文件就到达尾部则返回EOF。 3、类型的匹配 由于scanf是采用可变参数的机制,所以函数无法验证它们的指针参数是否为正确的类型,所以函数假定它们是正确的,(因此格式字符必须和后面的指针指向的类型保持一致)如果指针参数的类型和输入数据的类型不匹配则结果值就是垃圾。而且邻近的变量也有可能被改写。例如: float a; scanf("%d",&a); //本来a是一个float数据,却用一个整形指针指向变量a。 4