一、什么是字符串?
字符串就是多个只读字符组成的数组。
为什么说是只读?
只读是因为字符串的所有方法都不会改变原字符串,包括通过下标修改,字符串依旧是保持原样。
var str="abcd" console.log(str) //"abcd" str[0]="c" console.log(str) //"abcd"
为什么说字符串也是数组?
因为和数组有相同点
(2)能够通过下标获取某个字符;
(2)能够使用.length获取字符串的长度;
(3)能够通过循环遍历得到每一个字符。
二、字符串的创建方式
字符串的创建也分两种:字面量和构造函数
// 字面量方式 var str="hello" // 构造函数方式 var str2=new String("hello")
字符串也可以获取长度,通过.length。所以可以对字符串进行遍历。
var str="hello" for(var i=0;i<str.length;i++){ console.log(i) }
注意:不能通过下标去修改字符串中某一个字符的值,修改不会生效。
三、定义
字符集∑
一个字符集∑是一个建立了全序关系的集合,即任意属于∑的元素可以比较,字符集中的元素叫做字符。
字符串
一个字符串S将n个字符顺次排列组成,n为S的长度,计作|S|,此文使用的字符串均从1下标开始
子串
字符串S的子串S[i...j],i≤j,表示S串中从i到j这一段,也就是顺次排列S[i],S[i+1],...,S[j]形成的字符串。
子序列
字符串S的子序列是从S中将若干元素提取出来并不改变相对位置形成的序列,即S[p1],S[p2],...,S[pt],1≤p1≤p1≤...≤pt≤|S|。
后缀
是指从某个位置i开始到整个串末尾结束的一个特殊子串。字符串S的从i开头的后缀表示为Suffix(S,i),也就是Suffix(S,i)=S[i...|S|],suf(S,k)表示S后k个字符组成的后缀。
前缀
是指从串首开始到某个位置i结束的一个特殊子串。字符串S的从i结尾的前缀表示为Preffix(S,i),也就是Preffix(S,i)=S[1...i],pre(S,k)表示S前k个字符组成的前缀。
真前缀指除了S本身的S的前缀。
举例来说,字符串 abcabcd 的所有前缀为 {a, ab, abc, abca, abcab, abcabc, abcabcd}, 而它的真前缀为 {a, ab, abc, abca, abcab, abcabc}。
字符串的存储
使用 char 数组存储,用空字符 \0 表示字符串的结尾(C 风格字符串)。
使用 C++ 标准库提供的 string 类。
字符串常量可以用字符串字面量(用双引号括起来的字符串)表示。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程