什么是字符串如何表示
什么是字符串如何表示
字符串或串是由數(shù)字、字母、下劃線組成的一串字符。那么你對字符串了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是字符串的內(nèi)容,希望大家喜歡!
字符串的介紹
字符串主要用于編程,概念說明、函數(shù)解釋、用法詳述見正文,這里補(bǔ)充一點(diǎn):字符串在存儲上類似字符數(shù)組,所以它每一位的單個元素都是可以提取的,如s=“abcdefghij”,則s[0]=“a”,s[9]="j",而字符串的零位正是它的長度,如s[0]=10(※上述功能Ansistring沒有。),這可以給我們提供很多方便,如高精度運(yùn)算時每一位都可以轉(zhuǎn)化為數(shù)字存入數(shù)組。
一般記為 s=“a1a2···an”(n>=0)。它是編程語言中表示文本的數(shù)據(jù)類型。在程序設(shè)計中,字符串(string)為符號或數(shù)值的一個連續(xù)序列,如符號串(一串字符)或二進(jìn)制數(shù)字串(一串二進(jìn)制數(shù)字)。
通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字符串相等的充要條件是:長度相等,并且各個對應(yīng)位置上的字符都相等。設(shè)p、q是兩個串,求q在p中首次出現(xiàn)的位置的運(yùn)算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。
字符串的函數(shù)應(yīng)用
1. 連接運(yùn)算 concat(s1,s2,s3…sn) 相當(dāng)于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2. 求子串。 Copy(s,I,I) 從字符串s中截取第I個字符開始后的長度為l的子串。
例:copy(‘abdag’,2,3)=’bda’
3. 刪除子串。過程 Delete(s,I,l) 從字符串s中刪除第I個字符開始后的長度為l的子串。
例:s:=’abcde’;delete(s,2,3);結(jié)果s:=’ae’
4. 插入子串。 過程Insert(s1,s2,I) 把s1插入到s2的第I個位置
例:s:=abc;insert(‘12’,s,2);結(jié)果s:=’a12bc’
5. 求字符串長度 length(s) 例:length(‘12abc’)=5
在ASP中 求字符串長度用 len(s)例: len("abc12")=5
6. 搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,則返回s1的第一個字符在s2中的位置,若不是子串,則返回0.
例:pos(‘ab’,’12abcd’)=3
7. 字符的大寫轉(zhuǎn)換。Upcase(ch) 求字符ch的大寫體。
例:upcase(‘a’)=’A’
8. 數(shù)值轉(zhuǎn)換為數(shù)串。 過程 Str(x,s) 把數(shù)值x化為數(shù)串s.
例:str(12345,s); 結(jié)果s=’12345’
9. 數(shù)串轉(zhuǎn)換為數(shù)值。 過程val(s,x,I) 把數(shù)串s轉(zhuǎn)化為數(shù)值x,如果成功則I=0,不成功則I為無效字符的序數(shù),第三個參數(shù)也可不傳
例:val(‘1234’,x,I);結(jié)果 x:=1234
字符串的表示法
一種常用的表示法是使用一個字符代碼的數(shù)組,每個字符占用一個字節(jié)(如在ASCII代碼中)或兩個字節(jié)(如在unicode中)。它的長度可以使用一個結(jié)束符(一般是NUL,ASCII代碼是0,在C編程語言中使用這種方法)。或者在前面加入一個整數(shù)值來表示它的長度(在Pascal語言中使用這種方法)。
這是一個用NUL結(jié)束的字符串的例子,它用10個byte存儲,用ASCII表示法:
F R A N K NUL k e f w
46 52 41 4E 4B 00 6B 66 66 77
上面的字符串的長度為5個字符,但注意它占用6個字節(jié)。結(jié)束符后的字符沒有任何意義。
這是相同的Pascal字符串:
length F R A N K k e f w
05 46 52 41 4E 4B 6B 66 66 77
當(dāng)然,可能還有其它的表示法。使用樹和列表可以使得一些字符串操作(如插入和刪除)更高效。
看過“字符串的表示法”的人還看了: