字符

C++字符串使用整理

巧了我就是萌 提交于 2020-04-03 04:25:45
1.字符类型 用char定义,可以是单个变量或数组,与整形区别是有" ' ' ". 在字符数组中若无'\0'输入,系统会有'\0'自动补充 2.输入 用cin和cin.getline输入 cin:输入时遇到'\b'停止输入; cin.getline可以输入空格,也可设置遇到特殊字符时停止输入,如cin.getline(数组名,输入个数,需要遇到停止的特殊字符) 3.输出 cout可实现单个和数组的输出,但在数组输出时需要一个一个输出。 4.字符串处理函数 在使用字符函数前,需包含string.h文件 有strlen求字符串长度,字符串复制函数strcpy,字符串连接函数strcat,字符串比较函数strcmp,大写字母变成小写字符函数strlwr,小写字母变成大写字母函数strupr,将第二个数组中前n个元素复制到第一个数组中的strncpy函数,比较两个字符数组前n个字符函数strncmp。 来源: https://www.cnblogs.com/wwywy/p/10806986.html

vim使用

[亡魂溺海] 提交于 2020-04-03 04:23:40
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。 但是目前我们使用比较多的是 vim 编辑器。 vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。 什么是 vim? Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。 vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是 命令模式(Command mode) , 输入模式(Insert mode) 和 底线命令模式(Last line mode) 。 这三种模式的作用分别是: 命令模式: 用户刚刚启动 vi/vim,便进入了命令模式。 此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令 移动光标 w(e)  移动光标到下一个单词b    移动到光标上一个单词数字0  移动到本行开头$    移动光标到本行结尾H    移动光标到屏幕首行M    移动到光标到屏幕的中间一行L    移动光标到屏幕的尾行gg    移动光标到文档的首行G    移动光标到文档尾行ctrl + f 

python字符串的七种魔法

徘徊边缘 提交于 2020-04-03 01:58:07
1、join 描述 Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。 语法 join()方法语法: str.join(sequence) 参数 sequence -- 要连接的元素序列。 返回值 返回通过指定字符连接序列中元素后生成的新字符串。 例子: test = 'sizhiwangguai' v = '_'.join(test) print(v) 输出结果: s_i_z_h_i_w_a_n_g_g_u_a_i 2、split 描述 Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串 语法 split() 方法语法: str.split(str="", num=string.count(str)). 参数 str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。 num -- 分割次数。 返回值 返回分割后的字符串列表。 例子: test = 'si\nzhi\nwang\nguai\n' v1 = test.split() v2 = test.split(' ',2)print(v1,v2)输出结果: ['si', 'zhi', 'wang', 'guai'] ['si\nzhi\nwang\nguai\n'] 3、find 描述 Python

%c格式输入注意点

送分小仙女□ 提交于 2020-04-02 23:34:55
%c格式读入字符时,空格字符和转义字符(包括回车)都会作为有效字符输入; 有三种解决空格作为分隔符时被读入的问题: 1.使用%ls 2.使用getchar()函数吃掉空格 来源: https://www.cnblogs.com/MashiroOvO/p/12623286.html

常用正则表达式

心已入冬 提交于 2020-04-02 21:55:47
  匹配中文字符的正则表达式: [\u4e00-\u9fa5]   评注:匹配中文还真是个头疼的事,有了这个表达式就好办了   匹配双字节字符(包括汉字在内):[^\x00-\xff]   评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)   匹配空白行的正则表达式:\n\s*\r   评注:可以用来删除空白行   匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />   评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力   匹配首尾空白字符的正则表达式:^\s*|\s*$   评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式   匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*   评注:表单验证时很实用   匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*   评注:网上流传的版本功能很有限,上面这个基本可以满足需求   匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$   评注:表单验证时很实用   匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}   评注

大厂在用的Python反爬虫手段,破了它!

只谈情不闲聊 提交于 2020-04-02 20:20:04
SVG 映射反爬虫 SVG 是用于描述二维矢量图形的一种图形格式。它基于 XML 描述图形,对图形进行放大或缩小操作都不会影响图形质量。矢量图形的这个特点使得它被广泛应用在 Web 网站中。 接下来我们要了解的反爬虫手段正是利用 SVG 实现的,这种反爬虫手段用矢量图形代替具体的文字,不会影响用户正常阅读,但爬虫程序却无法像读取文字那样获得 SVG 图形中的内容。由于 SVG 中的图形代表的也是一个个文字,所以在使用时必须在后端或前端将真实的文字与对应的 SVG 图形进行映射和替换,这种反爬虫手段被称为 SVG 映射反爬虫。 6.3.1 SVG 映射反爬虫绕过实战 示例 6:SVG 映射反爬虫示例。 网址: http://www.porters.vip/confusion/food.html 。 任务:爬取美食商家评价网站页面中的商家联系电话、店铺地址和评分数据,页面内容如图 6-15 所示。 图 6-15 示例 6 页面 在编写 Python 代码之前,我们需要确定目标数据的元素定位。在定位过程中,发现一个与以往不同的现象:有些数字在 HTML 代码中并不存在。例如口味的评分数据,其元素定位如图 6-16 所示。 图 6-16 评分数据中口味分数元素定位 根据页面显示内容,HTML 代码中应该是 8.7 才对,但实际上我们看到的却是: 1 < span class = "item

正则表达式

六眼飞鱼酱① 提交于 2020-04-02 20:14:37
正则表达式 基本语法 字符类 .   匹配任意一个字符          例:abc. 可以匹配abcd、abc3 等 []  匹配括号中的任意一个字符      例:[abc]d可以匹配ad、bd、cd -  在[]括号内表示字符范围       例:[0-9a-fA-F]可以匹配以为十六进制数字 ^  位于[]括号内的开头,匹配除括号中的字符之外的任意一个字符 数量限定符 ?   紧跟在他前面的单元应匹配零次或一次 +  紧跟在他前面的单元应匹配一次或多次 *  紧跟在他前面的单元应匹配零次或多次 {N} 紧跟在他前面的单元应精确匹配N次 {N,} 紧跟在他前面的单元应匹配至少N次 {,M} 紧跟在他前面的单元应匹配最多M次 {N,M} 紧跟在他前面的单元应匹配至少N次,最多M次 例: aa?       匹配aa、aaa aa+       匹配aaa、aaaa...等 [0-9][0-9]*   匹配至少一位数字 [1-9][0-9]{2}  匹配从100到999的整数 [1-9][0-9]{2,} 匹配三位数以上(含三位数)的整数 [0-9]{,1}    相当于[0-9]? 位置限定符 ^  匹配行首的位置   $  匹配行末的位置 \<  匹配单词开头的位置 \>  匹配单次结尾的位置 \b  匹配单词开头或结尾的位置 \B  匹配非单词开头或结尾的位置 例:

1.6 C之 数组

我怕爱的太早我们不能终老 提交于 2020-04-02 15:42:09
数组 1、为什么需要数组? 数组就是数组成一个组,数组就是一个特定数据类型的变量。 2、如何定义数组? int(数组类型) a[x] ; 数组中元素类型 数组名[数组元素个数] 3、怎么使用数组? 数组定义的时候作为整体定义。但是使用的时候不能作为整体使用,使用时必须拆开使用数组中的各个元素。 譬如:int a[4],使用其中的四个元素,分别用a[0]......a[3],其中[]是数组的标志,[]中的数字叫做数组的下标(index 索引),下表是我们访问各个元素的指引,下表是0,代表数组第一个元素,下表是1,代表数组中的第二个元素。 总结 :数组中的所有元素必须是同一个数据类型,不可能在同一个数组中存储两种数据类型的数。 4、数组的初始化问题 初始化(initinalize,简写为 init),是为了让对象有一个预定的初始状态。 当一个局部变量没有初始化时,他的值是随机的。如果没有注意这个,可能会导致程序出错。解决方案有两个: 第一个,在定义过后明确给他赋值,使用=运算符。 第二个,定义该变量,同时进行初始化。 总结: 1、一般来讲,写代码的同时显示赋值,则两种方式并无优劣差异。但是人会犯错误,所以定义的同时初始化好一点,因为这个定义时候就有了固定值,即便之后忘记显示赋值也不会在成结果是随机的。 2、 一般情况下,定义的同时都将变量初始化为0.局部变量定义同时初始化为0

python 笔记 week1-- if while for

房东的猫 提交于 2020-04-02 08:24:17
1.添加环境变量 windows要加环境变量。 linux若升级版本不一致, #!/usr/bin/env python 调用环境变量中的python #!/usr/bin/python 调用系统中默认的python 2.字符编码 二进制到数字的转换:x位0与1 可以表示的最大数字为2**x -1 1)ASSCII(美国标准信息交换代码):将数字与字符相联系,从而二进制表示出数字转化为字符。其最多只能用8byte位来表示一个字节。即2**8-1=255,故其最多只能表示255个字符。 其中0-127先使用了,后边预留了128-255; 2)GB2312,1980年中国取了一个数字范围作为中文的索引,引入GB2312,共7000多个汉字加字符; 3)GBK1.0,1995年扩展到GBK1.0。 4)GBK18030,2000年GBK18030收录了27484个汉字,现在的pc平台必须支持GBK18030,对嵌入式产品暂不做要求,故手机、MP3一般只支持GB2312。 ASSCII ---> GB2312 ---> GBK ---> GBK18030都是向下兼容的。 之后由于多个国家都进行重编,字符混乱。 5)Unicode(统一码),为每种语言每个字符设置了统一并唯一的二进制编码 。每个字符占两个字节,即16byte位。缺点:所占用的空间大。 utf-8在Unicode基础上做了改进

Python strip()方法

孤街浪徒 提交于 2020-04-01 08:54:17
Python strip()方法 Python 字符串 Python 字符串 描述 Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。 语法 strip()方法语法: str.strip([chars]); 参数 chars -- 移除字符串头尾指定的字符序列。 返回值 返回移除字符串头尾指定的字符生成的新字符串。 实例 以下实例展示了strip()函数的使用方法: 实例(Python 2.0+) #!/usr/bin/python # -*- coding: UTF-8 -*- str = "00000003210saishikang01230000000"; print str.strip( '0' ); # 去除首尾字符 0 str2 = " saishikang "; # 去除首尾空格 print str2.strip(); 以上实例输出结果如下: 3210saishikang0123 saishikang 从结果上看,可以注意到中间部分的字符并未删除。 以上下例演示了只要头尾包含有指定字符序列中的字符就删除: 实例 #!/usr/bin/python # -*- coding: UTF-8 -*- str = "123abcsaishikang321"