什麼是字串如何表示

  字串或串是由數字、字母、下劃線組成的一串字元。那麼你對字串瞭解多少呢?以下是由小編整理關於什麼是字串的內容,希望大家喜歡!

  字串的介紹

  字串主要用於程式設計,概念說明、函式解釋、用法詳述見正文,這裡補充一點:字串在儲存上類似字元陣列,所以它每一位的單個元素都是可以提取的,如s=“abcdefghij”,則s[0]=“a”,s[9]="j",而字串的零位正是它的長度,如s[0]=10***※上述功能Ansistring沒有。***,這可以給我們提供很多方便,如高精度運算時每一位都可以轉化為數字存入陣列。

  一般記為 s=“a1a2···an”***n>=0***。它是程式語言中表示文字的資料型別。在程式設計中,字串***string***為符號或數值的一個連續序列,如符號串***一串字元***或二進位制數字串***一串二進位制數字***。

  通常以串的整體作為操作物件,如:在串中查詢某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設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

  字串的表示法

  一種常用的表示法是使用一個字元程式碼的陣列,每個字元佔用一個位元組***如在ASCII程式碼中***或兩個位元組***如在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個位元組。結束符後的字元沒有任何意義。

  這是相同的Pascal字串:

  length F R A N K k e f w

  05 46 52 41 4E 4B 6B 66 66 77

  當然,可能還有其它的表示法。使用樹和列表可以使得一些字串操作***如插入和刪除***更高效。

字串的表示法