字串的基本操作

2021-08-09 17:07:35 字數 3349 閱讀 8712

字串或串(string)是由數字、字母、下劃線組成的一串字元。一般記為 s=「a1a2···an」(n>=0)。它是程式語言中表示文字的資料型別。在程式設計中,字串(string)為符號或數值的乙個連續序列,如符號串(一串字元)或二進位制數字串(一串二進位制數字)。

通常以串的整體作為操作物件,如:在串中查詢某個子串、求取乙個子串、在串的某個位置上插入乙個子串以及刪除乙個子串等。兩個字串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的儲存方式是順序儲存方式和鏈結儲存方式。

對於字串來說使用順序儲存方式比使用鏈式儲存方式節約空間,且很容易實現,所有下面的**實現的是字串的順序存方式。

注意:規定在串值後面加乙個不計入串長度的結束標記字元,比如「\0」來表示串值終結。如果不加「\0」,輸出時可能會出現亂碼!

//-----公用的常量和型別----------

#include

#include

#include

using

namespace

std;

#include

#include

//函式結果狀態**

#define true 1

#define false 0

#define ok 1

#define error 0

#define overflow -2

typedef

int status;

//字串的基本操作

//---------串的堆分配儲存表示----------

typedef

structstring;

//--------串基本操作的函式原型說明--------

//生成乙個其值等於chars的串

status strassign(string &t, char *chars)

if(!i)else

t.ch[t.length] = '\0';

}return ok;

}//strassign

//返回串內元素個數,串長度

int strlength(string s)//strlength

//字串比較,若s>t,則返回》0;若s=t,則返回=0;若sint strcompare(string s, string t)

//將串s清空

status clearstring(string &s)

s.length = 0;

return ok;

}//clearstring

//用t返回由s1和s2連線而成的新串

status concat(string &t, string s1, string s2)//concat

//初始條件:串s存在,1<=pos<=strlength(s) 且 0<=len<=strlength(s)-pos+1

//用sub返回串s的第pos個字元起長度為len的子串

status substring(string &sub, string s, int pos, int len)else

s.ch[s.length] = '\0';

return ok;

}return ok;

}//substing

//判空

status strempty(string s)//strempty

//串複製

status strcopy(string &t, string s)//strcopy

//若主串s中存在和串t相同的子串,則返回它在主串中的

//第pos個字元之後的第一次出現的位置,否則函式值為0

status index(string s, string t, int pos)//while

}//if

return

0;}//index

//初始條件:串s存在,1<=pos<=strlength(s)+1

//操作結果:在串s的第pos個字元之前插入串t

status strinsert(string &s, int pos, string t)

return ok;

}//strinsert

//初始條件:串s存在,1<=pos<=strlength(s)-len+1

//操作結果:從串s中刪除第pos個字元起長度為len的子串

status strdelete(string &s, int pos, int len)

return ok;

}//strinsert

//初始條件:串s,t,v存在,t是非空串

//操作結果:用v替換主串s中出現的所有與t相等的不重疊的子串

status replace(string &s, string t, string v)

}return ok;

}//replace

//銷毀串

status destroystring(string &s)//destroystring

//用來測試基本操作

#include "base.h"

#include "string.h"

int main();

char str2 = ;

strassign(s1, str1); //生成字串

strassign(s2, str2);

cout

<

/輸出字串

圖:字串操作測試結果

字串基本操作

include unsigned int strlenth char s 獲取字串長度 return lenth void strcopy char target,char source 字串拷貝 int strcompare char s,char t 字串比較,s t,則返回1 s t,則返回0...

字串基本操作

遞迴求字串長度 int recurlength char str 字串中最後乙個引數的長度 int lastwordlen char str,int len int lastwordlen char str return lastlen 字串記憶體的拷貝 實現memmove函式 char my me...

字串基本操作

判斷字串開頭結尾字元 string.startswith l 判斷字串是否以l開頭 string.endswith n 判斷字串是否以n結尾 返回字串中字元的位置 string.find x 找到這個字元返回下標,多個時返回第乙個 不存在的字元返回 1 string.index x 找到這個字元返回...