字符数组

数组及字符的方法

▼魔方 西西 提交于 2019-11-28 10:24:56
数组的方法 ES5新增数组常见方法(indexof/forEach/map/filter) 新增的数组常见方法: 1.indexOf(data,start); 用于返回某个数组或者字符串中规定字符或者字符串的位置; var arr = ["a","b","c","d","e"]; arr.indexOf("a"); //0 //返回当前查询字符所在的位置的下标,如果查询不到,返回-1,start表示从第几位开始查询。 2.forEach(callback ); 循环,遍历数组 var arr = [2,3,4,5,6,7,8]; arr.forEach(function(value,index,arr){ console.log(value,index,arr); //函数中的三个参数分别代表,该项的值,该项下标,数组本身 }) 3.map(callback); 会遍历当前数组,然后调用参数中的方法,返回当前方法的返回值; 3.1 执行次数和参数,参考forEach var arr = [2,3,4,5,6]; arr.map(function(value,index,arr){ console.log(value,index,arr); }) 3.2 返回值 及 应用 map不会改变原有数组,而是将函数执行一次之后的返回值组成一个新数组,返回出来 var arr = [2,3,4

数组和字符串的方法整合

孤人 提交于 2019-11-28 09:58:40
js中的数组和字符串有点类似,不是说本质上,而是在遍历,获取时的类似。从标识来说,可以一眼看出那个是数组,那个是字符串;但在使用遍历时,会不经意的将两者混淆,导致方法用错。同时两者的方法又有好几个相同的,但需注意语义,以及有些方法是不会对原数组产生影响的。以下是我整理的一些关于数组和字符串的一些方法,不保证完整性。 数组方法 arr.push() 可向数组的末尾添加一个或多个元素,并返回新的长度。会影响原数组 1 var a = [1,2]; 2 a.push(3); 3 console.log(a); // [1,2,3] 4 console.log(a.push(8)); //4 arr.unshift()  在数组开头添加元素,返回该元素值。会影响原数组 1 var a = [1,2,3,"hello"]; 2 console.log(a.unshift("world")); // world 3 console.log(a); // ["world",1,2,3,"hello"] arr.pop()  用于弹出数组最后一个元素,返回该元素的值。会影响原数组。(等同于在数组中删除此元素) 1 var a = [1,2]; 2 console.log(a.pop()); // 2 3 console.log(a); // [1] arr.shift() 

浅析strlen()和sizeof()

爷,独闯天下 提交于 2019-11-28 09:38:30
  在 C 语言的学习及找工作时的笔试中,经常会遇到strlen()和 sizeof()这一对让人傻傻分不清的双胞胎。那么这对双胞胎有什么区别呢?   1. strlen()求的是字符串的有效长度,针对的对象是字符串;sizeof()求的是大小,针对的是类型。   2. strlen()是函数,而 sizeof()表面看起来是函数,其本质是关键字。   首先先明确 strlen()是一个函数,而 sizeof()是一个关键字,何以表明? #include<stdio.h> void fun () { printf(“This is fun ()!\n”); } void main() { fun (); }   fun 是一个函数,则在调用函数时,函数名一定要加上括号,即使函数没有任何参数,如果不加括号,则无法调动函数的运算。 #include<stdio.h> void fun() { printf ( "this is fun\n" ); } void main() { fun; //此处虽然不会造成程序编译错误,但不能调动函数 fun()的运行 }   在这个程序中,主函数中的fun表示的是函数fun()的地址,所以函数可以正常变异,但不能调动函数fun()。   若一个名字代表的是函数名,则在调用函数时一定要加上括号,那么sizeof()关键字又有哪些特性,是否跟函数一样

C语言中关于 strlen 和 sizeof 的用法及区别(含例题及解析)

本秂侑毒 提交于 2019-11-28 09:28:42
一、前言 首先我们需要知道的是,sizeof既是一个单目操作符,也是一个关键字,其作用是求操作数的 类型长度 (以字节为单位)。 而strlen是一个字符串操作函数,是一个 参数为指针类型 返回值为size_t(unsigned int)的函数,求的是 字符串 的长度。 所以现在我们知道 sizeof是一个求操作数类型长度的操作符(关键字),而strlen是一个求字符串长度的字符串操作函数 。 二、sizeof和strlen的用法 2.1 sizeof操作符在简单变量中的用法 int a = 10; char c = 'c'; printf("%d\n",sizeof(a)); //答案是4(操作数a的类型为整型,32位机器中占4个字节,64位机器中占8个字节) printf("%d\n",sizeof(int)); //答案是4 printf("%d\n",sizeof a); //答案是4(求变量的大小时可以去掉括号) printf("%d\n",sizeof int); //错误(求类型的大小时不能去掉括号) printf("%d\n",sizeof(c)); //答案是1(操作数c的类型为字符型,占1个字节) printf("%d\n",sizeof(char)); //答案是1 printf("%d\n",sizeof c); //答案是1(求变量的大小时可以去掉括号)

C++基础学习3

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-28 07:21:22
5数组 5.1数组概念 5.2一维数组 int a[10]; 常量表达式中 不能包含变量。 在定义数组时分别对数组元素赋予初值。 int a[10]={0,1,2,3,4,5,6,7,8,9}; 在对全部数组元素赋初值时, 可以不指定数组长度。 int a[]={1,2,3,4,5}; 5.3二维数组 类型标识符 数组名 [常量表达式] [常量表达式] float a[3][4],b[5][10]; 在使用数组元素时,应该注意 下标值应在已定义的数组大小的范围内 。 二维数组初始化 (一行对一行,界限清楚。 ) int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 如果对全部元素都赋初值 ,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。 int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 5.4数组名作函数参数 数组元素作为函数的实参,与用变量作实参一样。 用数组名作函数参数,此时 实参与形参都用数组名。 实参数组与形参数组类型应一致 ,用数组名作函数实参时, 只是将实参数组首元素的地址传递给形参。 用数组名作函数实参时,改变形参数组元素的值将同时 改变实参数组元素的值 。 select_sort(a,10); 如果用二维数组名作为实参和形参,在对形参数组声明时,必须指定第二 维(即列)的大小

文件和流

╄→гoц情女王★ 提交于 2019-11-28 06:23:35
IO流:文件和流 回顾 Collection接口 add remove contains clear iterator |_____List (特点:有序的,可以重复) |___ArrayList (存储结构:数组) 查找遍历快,添加删除慢 |___LinkedList (链表)添加删除快,查找遍历慢 |___Vector 数组 (线程安全的) |___Stack 数组(栈)先进后出 | |_____Set(特点:无序的,不能重复) |_____HashSet 哈希表(jdk1.7数组加链表jdk1.8数组链表红黑树) 1 执行hashCode()来计算存储的位置 ,2 执行equals比较结果 |____LinkedHashSet 哈希表 可以保证顺序 |____TreeSet 自平衡红黑二叉树 1 元素要实现Comparable接口 ,2 定制比较器 Comparator Map(特点:存储键值对,键不能重复,一个键对应一个值,值可以重复,无序) |______ HashMap 哈希表 1 执行hashCode()来计算存储的位置 ,2 执行equals比较结果 |______ Hashtable 哈希表 不能存储null键和null值,线程安全的 jdk1.0----》Properties子类 |_______LinkedHashMap 哈希表 可以保证顺序 |______

aabccd统计每个字符出现的次数,结果显示{ a: 2, b: 1, c: 2, d: 1 };去掉重复的字符,使结果显示abcd

情到浓时终转凉″ 提交于 2019-11-28 04:50:20
遍历字符串的方式和遍历数组的方式有点相似,或者说就是相同的。在学习数组的遍历方法之前,可以通过for循环去遍历数组,同样,字符串也可以;字符串跟数组都有一个length的属性。下面代码奉上,个人思路! 1 var str = "aabccd"; 2 var obj = {}; 3 for (var i = 0; i < str.length; i++) { 4 var x = str.charAt(i); 5 if (obj[x] == undefined) { 6 obj[x] = 1; 7 } else { 8 obj[x]++; 9 } 10 } 11 console.log(obj); 12 var str1=""; 13 for (var i in obj) { 14 str1+=i; 15 } 16 console.log(str1); 里面还用到了对象,比如当对象的key为变量时 使用中括号可以获取到;当key为具体的值时,用点语法。切记!切记!切记勿将字符串和数组混淆! 来源: https://www.cnblogs.com/ruo-shui-yi-fang/p/11392250.html

javaScript数组操作

天涯浪子 提交于 2019-11-28 02:52:15
javaScript数组属于Object引用类型 var arr = new Array();//创建数组 console.log(typeof arr);//输出类型==object 创建数组的几种方式: /*定义数组*/ var arr1 = [1,5,3,6,2,9];//定义且赋值 var arr2 = new Array(5);//指定长度 var arr3 = [];//空数组、语法糖 var arr4 = new Array(); //定义但是没有赋值 var arr5 = new Array('2',56,'a',true);//定义且赋值 1、检测是不是数组 Array.isArray(value) 方法 //Array.isArray("数组名称"); 如果是数组返回true,如果不是返回false if(Array.isArray(arr1)){ console.log("This is an Array"); }else{ console.log("This is not an array"); } 2、访问数组 一般访问数组都是 通过索引访问 //访问数组 console.log(arr1[0]);//1 console.log(arr2[1]);//undefined 虽然声明但是没有赋值 3、数组的 索引是否可以为负数、字符、浮数 ? console

字符数组和字符串

落爺英雄遲暮 提交于 2019-11-27 20:13:40
以32位系统为例。 1、定义和初始化 字符数组:char c[10]; 字符串:char s[] = "hello"; 字符数组的定义和初始化可以在一起或者分开: char c[10] = "qwer"; 或者 char c[10]; c[0] = 'q'; c[1] = 'w';c[2] = 'e'; c[3] = 'r'; 不能这样:c = "qwer" 初始化时要注意数组大小,同时要保留\0的位置。 用printf打印字符数组时,数组中必须要有\0,否则会造成打印越界。 字符串的定义和初始化不能分开,但可以修改指定字符,如 char s[] = "hello"; s[1] = 'o'; 2、sizeof和strlen sizeof(c)=10;就是实际的数组大小 sizeof(s)=6;大小是字符的个数+1(1是隐藏'\0') strlen不包含\0,如: char c[10] = "wwer"; strlen(c) = 4; char s[] = "helloz"; strlen(s) = 6; 3、引用 两者的引用方式相同,有两种:通过下标或者指针的方式,如: 字符数组:c[1] = 'r' 或者 *(c + 1) = 'r' 字符串:s[1] = 'r' 或者 *(s + 1) = 'r' 4、字符串相关操作函数 主要有以下这些,基本都定义在string.h里面

字符串和字符数组

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-27 20:13:11
1、字符串 严格意义上来说,C语言并没有字符串原生的字符串的类型,而是通过字符指针来实现的:char *p = "LINUX";。而对于其他的高级语言来说,比如C++的就存在字符串类型: string p1 = "I LOVE LINUX"; 。 字符串在内存中其实就多个字节组成的,且地址都是连续的;指针指向字符串的的头部;字符串的结尾是以"\0"(是真能整的零)作为字符串结束的标志。 "\0" 的理解: \0 是一个 ASCII 字符,其实是编码为零的字符,是真正的零。这个和数字零是不同的,数字零的 ASCII 是48。 注意: 当定义一个字符串的时候:char *p = "LINUX",系统会在这个字符串的结尾处 自动添加'\0' ,作为结束的标志,所以'\0'虽然是连接这最后一个字符,但是并不属于这个字符串。 分配的字符串,是被保存到文字常量区 int main(int argc, char *argv[]) { char *p = "I LOVE LINUX"; printf("%c\n", *p); printf("%s\n", p); while (1); } 输出结果为: II LOVE LINUX 2、字符数组 定义:char p[] = "I LOVE LINUX"; 其实就是将字符串放到数组中,在一块连续的内存中依次排放,则数组名则是指向字符串第一个地府的地址