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