① 串赋值Assign(s,t):将一个值赋给串s。
② 销毁串DestroyStr(s):释放串s占用的内存空间。
③ 串复制StrCopy(s,t):将一个串t赋给串s。
④ 求串长StrLength(s):返回串s的长度。
⑤ 判断串相等StrEqual(s,t):两个串s和t相等时返回1;否则返回0。
⑥ 串连接Concat(s,t):返回串s和串t连接的结果。
⑦ 求子串SubStr (s,i,j):返回串s的第i个位置开始的j个字符组成的串。
⑧ 查找定位位置Index(s,t):返回子串t在主串s中的位置。
⑨ 子串插入InsStr(s,i,t):将子串t插入到串s的第i个位置。
⑩ 子串删除DelStr(s,i,j):删除串s中从第i个位置开始的j个字符。
⑪ 子串替换RepStrAll(s,s1,s2):将串s中所有出现的子串s1均替换成s2。
⑫ 输出串DispStr(s):显示串s的所有字符。
1 #include<stdio.h> 2 #define maxsize 100 3 typedef struct{ 4 char ch[maxsize]; 5 int n; 6 }SeqString; 7 8 void Assign(SeqString &L,char ch1[]){ // 数组赋值给字符串 9 int i=0; 10 while(ch1[i]!='\0'){ 11 L.ch[i]=ch1[i]; 12 i++; 13 } 14 L.n=i; 15 } 16 17 void DisqStr(SeqString &L){ // 输出串 18 printf("L.ch的字符串为:"); 19 for(int i=0;i<L.n;i++){ 20 printf("%c",L.ch[i]); 21 } 22 printf("\n"); 23 } 24 25 int concat(SeqString &L,char ch2[]){ //串连接 26 int i=0,j,m; 27 m=L.n; 28 while(ch2[i]!='\0'){ 29 i++; 30 m++; 31 } 32 for(j=0;j<i;j++){ 33 L.ch[j+L.n]=ch2[j]; 34 } 35 printf("将串ch2连接到L.ch后面,得到的新的字符串为:\n%s\n",L.ch); 36 L.n=m; 37 return i; 38 } 39 40 void Strlength(SeqString &L){ //求串长 41 printf("字符串L.ch的长度为:%d\n",L.n); 42 } 43 44 void StrEqual(SeqString &L,char ch2[],int i){ //判断串相等 45 int k=0,a; 46 a=L.n>=i?L.n:i; 47 printf("判断L.ch和ch2的字符串是否相等!\n结果为:"); 48 for(int j=0;j<a;j++){ 49 if(L.ch[j]==ch2[j]){ 50 k++; 51 }else if(L.ch[j]>ch2[j]){ 52 printf("1\n"); 53 break; 54 }else { 55 printf("-1\n"); 56 break; 57 } 58 } 59 if(k==a){ 60 printf("0\n"); 61 } 62 } 63 64 void Index (SeqString &L,char ch3[]){ 65 int n=0,i,j,k; 66 while(ch3[n]!='\0'){ 67 n++ ; 68 } 69 for(i=0;i<L.n-n;i++){ 70 for(j=0,k=i;j<n;j++,k++){ 71 if(ch3[j]!=L.ch[k]){ 72 break; 73 } } 74 if(j==n){ 75 printf("ch3字符串是从L.ch字符串中的第%d位置到第%d的位置\n",i+1,i+n); 76 } 77 } 78 return; 79 } 80 81 void InsStr(SeqString &L,int n,int m){ //串的查找 82 int i; 83 printf("L.ch字符串第%d个位置开始的%d个字符为:\n",n,m); 84 for(i=n-1;i<n+m-1;i++){ 85 printf("%c",L.ch[i]); 86 } 87 printf("\n"); 88 } 89 90 int main(){ 91 int i,m,n; 92 char ch1[100],ch2[5]="efgh",ch3[4]="efg"; 93 SeqString L; 94 printf("请输入一个字符串:\n"); 95 gets(ch1); 96 Assign(L,ch1); 97 DisqStr(L); 98 Strlength(L); 99 StrEqual(L,ch2,i); 100 i=concat(L,ch2); 101 printf("请问要查找第几个位置开始的几个字符:\n"); 102 scanf("%d %d",&n,&m); 103 InsStr(L,n,m); 104 Index(L,ch3); 105 DisqStr(L); 106 }