#include
#include
//typedef int status;
#define max 20
#define ok 1
#define error 0
#define overloe -2
typedef struct//堆分配表示串
char *ch;
int length;
}hstring;
int creathstring(hstring &h)//構造字串
h.length = 0;
h.ch = (char *)malloc(max*sizeof(char));
for (int i = 0; i < max; i++)
h.ch[i]=getchar();
h.length++;
if (getchar() == '\n')
break;
return ok;
}//creathstring
int printhstring(hstring h)//輸出所輸入的字串
if (h.length == 0)
printf( "空串!" );
return error;
else
for (int i = 0; i < h.length; i++)
printf("%c",h.ch[i]);
printf("\n");
return ok;
}//printhstring
int hstringlength(hstring h)//求字串的長度
printf( "您輸入的字串長度為:" );
printf(" %d ",h.length);
return ok;
}//hstringlength
int hstringcompare(hstring h, hstring t)//求兩個字串長度差(絕對值)
printf( "兩個字串的長度差為:" );
int l;
l = h.length - t.length;
if (l<0)
printf("%d",-l);
if (l>=0)
printf("%d",l);
return ok;
}//hstringcompare
int concathstring(hstring &s, hstring h, hstring t)//鏈結h和t
if (!(s.ch = (char *)malloc((h.length + t.length)*sizeof(char))))
exit(overloe);
for (int i = 0; i < h.length; i++)
s.ch[i] = h.ch[i];
s.length = h.length + t.length;
for (int j = h.length; j < s.length; j++)
s.ch[j] = t.ch[j-h.length];
return ok;
}//concathstring
int subhstring(hstring &sub, hstring s, int pos,int len)
//subhstring
int clearhstring(hstring &h)//將h清為空串
if (h.ch)
free(h.ch);
h.ch = null;
h.length = 0;
return ok;
}//clearhstring
void main()
hstring s,h,t;
printf( "請輸入乙個字串(按回車鍵結束):" );
creathstring(h);
printf("現在串中的字元為:" );
printhstring(h);
hstringlength(h);
printf( "請再輸入乙個字串(按回車鍵結束):" );
creathstring(t);
hstringcompare(h, t);
concathstring(s, h, t);
printf("現在串中的字元為:" );
printhstring(s);
hstring sub;
int pos, len;
printf( "請輸入擷取位置pos及長度len:" );
scanf( "%d%d",&pos,&len);
subhstring(sub, s, pos, len);
printf( "擷取的子串為:" );
printhstring(sub);
clearhstring(s);
printf ("檢驗s清空後是否為空:" );
printhstring(s);
}//main
串 堆串的基本操作
順序串為靜態順序儲存表示,在串的插入,連線過程中如果長度超過了maxsize就會截掉一部分。因此可以使用動態分配儲存表示串 pragma once include include includetypedef struct heapstring void initsring heapstring s...
串的基本操作
include include include include define maxn 50 define ok 1 define error 0 typedef struct strnode snode void creat snode char 建立串 int getsubstr snode i...
串的基本操作
串的基本操作 前記 這一章課件裡主要講了串的屬性和一些常用的操作。課件裡面是通過偽 的方式來進行描述,這樣有利於同學們的理解,以及能夠適用於各種程式語言。下面就針對c 語言對這些基本操作做乙個具體的實現,大家在運用中可以參考。mystring.h ifndef mystring h define m...