字串1 常用函式

2021-10-09 04:56:15 字數 2648 閱讀 8576

字串就是用陣列儲存一連串用字元表示的資訊

操作和其他資料結構不同,字串的每個單位不是其他資料結構的節點,而是字元陣列的每位,所以演算法理解起來有一點難度。有些函式看起來還挺長的,不過慢慢理解之後會發現其實不難

由於並非必須,下列函式沒有檢測輸入資料是否正確符合規範沒有越界,需要輸入自行確定

typedef

char string[maxsize+1]

;

使用《大話資料結構》中的做法,string的第0位儲存字串長度,第1到第maxsize位儲存資料

string[maxsize-1]等同於*string,即typedef char *string,把char *叫做string

還沒輸入之前,字串為空,無法使用其他函式

輸入:輸入字串s的內容

逐個讀取字元,最後確定字串長度,賦給s[0]

void

input

(string s)

s[0]=i-1;

}

輸出:列印字串s

也是依次輸出。不能用cout,因為cout不能輸出空格,所以注意要包括stdio.h

void

output

(string s)

}

複製:把字串s複製到字串t中

從第零位依次放入即可

void

copy

(string s,string t)

}

比較:比較字串s和字串t,返回s和t的差值(先後順序)

按位比較,直到第乙個不一樣的字元出現;如果到某串結尾都相同,則差值是長度相減

int

compare

(string s,string t)

}return s[0]

-t[0];

//如果前min個都一樣,那值的差別就在字元數上

}

連線:把t接在s後面,多了就截斷t,只放一部分

void

connect

(string s,string t)

s[0]=

(s[0

]+t[0]

<=50)

?(s[0]

+t[0])

:50;//作用同上,替代if/else

}

賦串:將s中第position個字元起length長的子串賦給t

void

getstring

(string s,string t,

int position,

int length)

t[0]=length;

}

查詢:從s中第position個字元起找是否有sub子串,返回它出現的第乙個位置,如果沒有,返回0

有兩種思路:

①逐位比較

int

index1

(string s,string sub,

int position)

else}if

(j>sub[0]

)return i-sub[0]

;else

return0;

}

②呼叫compare

int

index2

(string s,string sub,

int position)

else

}return0;

}

插入:在s中第position個字元前插入sub

根據插入後總長可以分為兩種情況

void

insert

(string s,string t,

int position)

for(i=position;i<=position+t[0]

-1;i++

)//插入

s[0]

=s[0

]+t[0]

;//別忘了改

}else

for(i=position;i<=position+t[0]

-1;i++

)//從position到position+t[0]-1即插入t的那些位

s[0]

=maxsize;

//別忘了改

}}

刪除:刪除s中position位後面length長的子串

就是簡單的前移

void

delete

(string s,

int position,

int length)

s[0]=s[0]

-length;

}

替換:將s中的old串替換成new串

用index搜尋位置,用delete刪除old,用insert插入new

void

replace

(string s,string old,string new)

}while

(i);

}

字串常用函式

1.查詢字串位置的函式 不適合用於漢子查詢 strpos str,find,int 查詢find在str中第一次出現的位置。對大小寫敏感 從int位置開始往後查詢。如果沒有找到返回flase strrpos str,find,int 查詢find在str中最後一次出現的位置。對大小敏感 從int位置...

字串常用函式

提取子串和字串連線 題取子串的函式是 substr 形式如下 s.substr 返回s的全部內容 s.substr 11 從索引11往後的子串 s.substr 5,6 從索引5開始6個字元 把兩個字串結合起來的函式是 輸入輸出操作 1 從輸入流讀取乙個string。2 把乙個string寫入輸出流...

字串常用函式

函式 方法 描述示例 find 檢測字串是否包含指定字元,如果是返回開始的索引值,否則返回 1 str1 hello world print str1.find lo index 檢測字串是否包含指定字元,如果是返回開始的索引值,否則提示錯誤 str1 hello world print str1....