如题所述
字符串主要用于编程,符串或串(String)是由零个或多个字符组成的有限序列。一般记为 s='a1a2•••an'(n>=0)。它是编程语言中表示文本的数据类型。 通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2010-12-09
字符串在形式语言范畴中定义为一个字母表(有限字符集合)中的有限个字符的有序集合。
通常所说的字符串,除了这个基本含义以外,还包含了它的表示形式。
由于字符能在计算机中以一个整数表示,对于每个字符占用空间相同的情况下(等宽字符串),用能够存放表示字符的整数的连续空间来保存字符串,同时使用长度或结束标志符信息。按宽度分,常用窄字符串(字符为1个字节,编码通常为ANSI,可以通过约束字符的值等方式扩展为不定宽度的MBCS(多字节字符串),例如中文系统中常用的ANSI+GBK),以及宽字符串(最常用的宽字符编码是Unicode,因此一般是指Unicode字符串)。
C/C++中对于等宽字符串使用数组或字符指针指针来引用,字符串结尾处加上每一位全部为0的字符'\0'(数值上等于整数0)标识,这种表示形式称为C风格字符串(C-style string)。最常用的字符串是指C-style字符串中,字符用char储存的版本,即C-style窄字符串。对于宽字符串,C/C++标准规定用wchar_t表示这个字符(宽度和字节序取决于实现,例如Mac平台下的工具中是2字节,对应编码UTF-16BE;Windows平台下的通常是2字节,对应编码UTF-16LE;GCC支持的是4字节,对应UTF-32,能放下所有Unicode字符),wchar_t数组或wchar_t指针是对应的字符串表示形式。C++标准库中用char或wchar_t字符串封装为std::string和std::wstring类,也是常见的实现方式。此外,还有Pascal中起始保存长度的字符数组等形式;以及一些字符串库中专用于处理非等宽字符串(例如UTF-8编码)等的表示形式。这些数据结构通常也称为字符串。
最后,具体到类C语言的语法上,包含了被作为字符串的字符的编译期符号"",称为字符串字面量(内存布局和表示C-style窄字符串的char数组相同),也是通常所说的字符串。宽字符串字面量用L""表示(内存布局同表示C-style宽字符串的wchar_t数组)。而字符常量用''和L''引用对引的字符来表示。
====
[原创回答团]
通常所说的字符串,除了这个基本含义以外,还包含了它的表示形式。
由于字符能在计算机中以一个整数表示,对于每个字符占用空间相同的情况下(等宽字符串),用能够存放表示字符的整数的连续空间来保存字符串,同时使用长度或结束标志符信息。按宽度分,常用窄字符串(字符为1个字节,编码通常为ANSI,可以通过约束字符的值等方式扩展为不定宽度的MBCS(多字节字符串),例如中文系统中常用的ANSI+GBK),以及宽字符串(最常用的宽字符编码是Unicode,因此一般是指Unicode字符串)。
C/C++中对于等宽字符串使用数组或字符指针指针来引用,字符串结尾处加上每一位全部为0的字符'\0'(数值上等于整数0)标识,这种表示形式称为C风格字符串(C-style string)。最常用的字符串是指C-style字符串中,字符用char储存的版本,即C-style窄字符串。对于宽字符串,C/C++标准规定用wchar_t表示这个字符(宽度和字节序取决于实现,例如Mac平台下的工具中是2字节,对应编码UTF-16BE;Windows平台下的通常是2字节,对应编码UTF-16LE;GCC支持的是4字节,对应UTF-32,能放下所有Unicode字符),wchar_t数组或wchar_t指针是对应的字符串表示形式。C++标准库中用char或wchar_t字符串封装为std::string和std::wstring类,也是常见的实现方式。此外,还有Pascal中起始保存长度的字符数组等形式;以及一些字符串库中专用于处理非等宽字符串(例如UTF-8编码)等的表示形式。这些数据结构通常也称为字符串。
最后,具体到类C语言的语法上,包含了被作为字符串的字符的编译期符号"",称为字符串字面量(内存布局和表示C-style窄字符串的char数组相同),也是通常所说的字符串。宽字符串字面量用L""表示(内存布局同表示C-style宽字符串的wchar_t数组)。而字符常量用''和L''引用对引的字符来表示。
====
[原创回答团]