1.串的概念
串,即是字串,也是一種特殊的線性表;其特殊性有兩方面:
1.在邏輯結構方面,串是僅限資料型別為字元,不能是其他資料型別;
2.在運算方面,將乙個串作為整體或者一部分進行運算。
2.幾個概念的區別:
1.空串與空格組成的字串:空串不包括任何字元,長度為0,而由空格組成的串由於空格也是字元,其長度為空格的個數;
2.子串與主串:串中任意個連續字元組成的子串行稱為子串,包含子串的串稱為主串;
3.字元和子串的位置:單個字元在串中的序號稱為字元在串中的位置;子串的第乙個字元在串中出現的位置稱為子串在串中的位置;
4.串相等:參加比較的串的長度相等且個位置的字元也相等;
5.串的比較:以ascii碼值進行比較;
3.串的順序結構儲存及運算:
3.1.串的順序結構儲存:
1.順序結構儲存的串簡稱順序串,是以一組連續的儲存單元進行儲存串中的字串行。
2.乙個位元組需要8個位元組,因此乙個記憶體單元可以儲存多個字元,如乙個32位的記憶體單元可以儲存4個字元,因此,串的順序儲存方式有兩種:非緊縮格式和緊縮格式;
3.非緊縮格式是每個儲存單元只儲存乙個字元,緊縮格式是乙個儲存單元可以儲存多個字元;
4.一般採用的是非緊縮格式的定長儲存,即直接按預定的大小,為每個串分配固定長度的儲存區;
5.串的長度的標識有三種,常用的是:串末尾以不會出現在串中的字元'\0'作為結束標誌;
3.2.串的基本運算:
1.求串長:
int str_len(char s)
return i;
}
2.串連線:
int str_cat(char s1,char s2)else
s1[i]='\0';
}return 1;
}
3.求子串:
//將s中從第i個位置開始,長度為len的子串通過ss返回
int sub_str(char s,char ss,int i,int len)else
return s1[i]-s2[i];
}
5.串插入:
//將串s2插入到s1中i的位置
int str_insert(char s1,int i,char s2)else
temp[j]='\0';
j=0;
while(s2[j]!='\0')
j=0;
while(temp[j]!='\0')
s1[i]='\0';
}return 1;
}
4.3.串的鏈式結構儲存及運算:
4.1.概念:
1.串的鏈式儲存結構又稱鏈串,鏈串的形式一般與鍊錶相同,唯一的區別就是:鏈串中的乙個結點可以儲存多個字元;
2.將鏈串中每個結點所儲存的字元個數稱為結點大小;
3.結點大小大於1時,儲存密度高,但是操作效率不高。
4.2.鏈串的基本運算:
1.串賦值:將乙個陣列中的字元賦給鏈串
void init_str(linkstr **str,char s)
q->next=null;
}
2.求串長:
int str_length(linkstr *s)
return i;
}
3.串連線:(t保持不變,因此不能直接將t進行操作)
void strcat(linkstr *s,linkstr *t)
p=s;
while(p->next!=null)
p->next=str->next;//進行鏈結
free(str);
}
4.求子串:
void strsub(linkstr *f,linkstr **s,int i,int len)else
for(k=0;kdata=p->data;
r->next=q;
r=q;
p=p->next;
}r->next=null;
}
}
5.串插入:
void strinsert(linkstr *s,int i,linkstr *t)
r=p->next;//將i元素結點位置的串暫時存在r中
p->next=t->next;//將t中的第乙個元素鏈結到i-1的後面,即i的位置
p=t;
while(p->next!=null)
p->next=r;
}
最簡字串查詢操作(靜態順序串,非鏈串)
demo3.cpp 定義控制台應用程式的入口點。程式實現從母串中找到字串,並且輸出字串在母串中的位置 2015年4月4日10 44 04 include stdafx.h include using namespace std intmain i temp 串字元不匹配 返回母串原來位置的下乙個字母...
順序串演算法
問題描述 採用順序儲存方式儲存串,實現下列演算法並測試 1 試編寫演算法實現將字串s中所有值為c1的字元換成值為c2的字元 void trans sqstring s,char c1,char c2 2 試編寫演算法,實現將已知字串所有字元倒過來重新排列。如abcdef改為fedcba。void i...
第四章 串 陣列和廣義表 順序串的基本操作
include define true 1 define false 0 define ok 1 define error 0 define overflow 2 define maxstrlen 255 typedef int status typedef int elemtype typedef...