關於字串的一系列相關操作!(C語言編寫)

2021-09-03 02:12:00 字數 2229 閱讀 7716

這是關於字串的一系列基本操作

說明:程式中包含字串的初始化,字串的連線,字串的賦值,字串的逆置,字串的刪除以及插入操作

還有關於字串的匹配問題,本程式採用bf蠻力演算法來匹配字串,也可以使用kmp演算法,具體演算法並未在本 程式體現,在重要的位置處都有詳細的**注釋

#include

#include

#define maxsize 30

typedef struct //建立乙個結構體

hstring;

//初始化乙個字元鍊錶

void init_hstring(hstring *s)

//計算字串長度

int lengthstring(char *ch)

//字串賦值操作

int assignhtring(hstring *s, char *ch,int len) //將字串ch的值賦值給結構體變數s

//字串的插入操作

int insertstring(hstring t, hstring s, int pos) //將字串t插入主串s的第pos前的位置,主串長度為len

//字串的連線操作

int strcat_string(hstring s,hstring t)

//字串匹配函式

int matching_string(hstrings, hstring *t)

else

if (j > t->length)

return i - t->length;

else return 0;

}//字串的刪除操作

int delete_string(hstring s, int pos, int len) //刪除字串s從第pos個位置開始連續len個字元

//字串的替換操作

int replace_hstring(hstring *s, hstring *t, hstring *v) //將主串s中與t字串相等的字串替換為字串v的內容

return 1;//操作成功!

}//求字串的逆串

int strreverse(hstring *s,hstring t)//將字串s中的元素逆置並且賦值給字串t

//輸出字串函式

print_string(hstring s)

//進入主函式main()

int main()

{hstring *s, *t, *v,*q,q,s,t,v;

s = &s, t = &t; v = &v; q = &q;

char ch1[maxsize], ch2[maxsize], ch3[maxsize];

int len1, len2, len3;

printf(「請輸入主串s的值:\n」);

scanf("%s",ch1);

printf(「請輸入模式串t的值:\n」);

scanf("%s", ch2);

printf(「請輸入字串v的值:\n」);

scanf("%s",ch3);

init_hstring(s);

init_hstring(t);

init_hstring(v);

len1 = lengthstring(ch1);

len2 = lengthstring(ch2);

len3 = lengthstring(ch3);

assignhtring(s, ch1, len1);

assignhtring(t, ch2, len2);

assignhtring(v, ch3, len3);

printf("得到主串s的長度:%d,模式串t的長度為:%d,替換串v的長度為:%d\n",s->length,t->length,v->length);

//逆置字串

strreverse(s, q);

printf("將主串s的字元逆置:\n");

print_string(q);

//將字串查詢並做替換

printf("將字串s中所有與t相等的字元替換為v的字元操作:\n");

replace_hstring(s, t, v);

print_string(s);

//連線主串s與字串t

printf("將字串t的字元連線在主串s之後:\n");

strcat_string(s, t);

print_string(s);

string字串的一系列操作

indexof 查詢字串中指定字元或字串首次出現的位置,返首索引值,如 str1.indexof 字 查詢 字 在str1中的索引值 位置 str1.indexof 字串 查詢 字串 的第乙個字元在str1中的索引值 位置 str1.indexof 字 start,end 從str1第start 1...

第一系列 字串

程式當中所有的雙引號字串,都是string類的物件。就算是沒有new,也照樣是。字串的特點 字串的內容用不可變。重點 正是因為字串不可改變,所以字串是可以共享使用的。字串效果上相當於是char 字元陣列,但是底層原理是byte 位元組陣列。字串的常量池 字串常量池,程式當中直接寫上雙引號字串,就在字...

關於mysql 一系列操作

這是在linux 的mysql的資料庫操作,備份資料庫 mysqldump u root p cxn usr local backupcxn.sql 引數說明 cxn 代表著我要備份的資料庫名稱,usr local backupcxn.sql代表著備份到usr local下,輩分的名稱叫做backu...