Dotcpp  >  编程教程  >  字符串相关  >  字符串基础知识

字符串基础知识

点击打开在线编译器,边学边练

一、什么是字符串?

字符串就是多个只读字符组成的数组。

为什么说是只读?

只读是因为字符串的所有方法都不会改变原字符串,包括通过下标修改,字符串依旧是保持原样。

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 类。

字符串常量可以用字符串字面量(用双引号括起来的字符串)表示。


知识点标签:字符串


本文固定URL:https://www.dotcpp.com/course/1006

算法竞赛教程
第一章 算法基础
第二章 搜索算法
第三章 排序算法
第四章 字符串相关
第五章 数学相关
第六章 动态规划
第七章 数据结构
第八章 图论
第九章 计算几何
第十章 其他算法
Dotcpp在线编译      (登录可减少运行等待时间)