亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

(10)串

2019-11-11 05:14:18
字體:
來源:轉載
供稿:網友

串是字符串的簡稱。它是一種在數據元素的組成上具有一定約束條件的線性表,即要求組成線性表的所有數據元素都是字符,所以,人們經常這樣定義串:串是一個有窮字符序列。如: abcdef

串的長度為6

串中沒有任何字符,其串的長度為0,通常稱為空串。由空格字符組成的串,一班稱為空格串。串中任意連續的字符組成的子序列稱為該串的子串。包含子串的串又稱為該子串的主串。子串在主串中第一次出現的第一個字符的位置稱為子串在主串中的位置。兩個串的長度相等,并且各個對應的字符都相同,稱兩個串相等。串的存儲方式也分兩種:串的順序存儲結構和串的鏈式存儲結構

我寫的是一個堆分配存儲的串,代碼:

#include<iostream>#include<string>#include<malloc.h>using namespace std;//串的堆存儲方式typedef struct {	char *str;	int length;}HString;void init(HString  *s) {	s->length = 0;	s->str = NULL;}//串初始化void HStringInit(HString *s) {	char c;	int length;	cout << "請輸入串的長度:" << endl;	cin >> length;	s->length = length;	s->str = (char*)malloc((length+1)*sizeof(char));	for (int i = 0; i < s->length; i++) {		cin >> c;		s->str[i] = c;	}	cout << "初始化成功!" << endl;}//串賦值void HStringAssign(HString *s, HString *t) {				if (s->str) free(s->str);	int len = t->length;	s->length = len;	if (!len) {		s->str = (char*)malloc(sizeof(char));		s->str[0] = '/0';	}	else {		s->str = (char*)malloc(sizeof(char));		for (int i = 0; i < t->length; i++) {			s->str[i] = t->str[i];		}	}	cout << "賦值成功!" << endl;}//輸出串內容void PRint(HString *s) {								if (s->length == 0 && s->str == NULL) {		cout << "串的內容為空!" << endl;	}	else {		cout << "串的內容為:	";		for (int i = 0; i < s->length; i++) {			cout << s->str[i];		}		cout << endl;	}}//求串長void HStringLength(HString *s ) {						cout << "串的長度為:		" << s->length << endl;}//判串相等void HStringCompar(HString *s,HString *t) {					int flag = 0;	if (s->length != t->length) {		cout << "不相等!" << endl;	}	else {		if (s->length == 0) {			cout << "相等!" << endl;		}		else {			for (int i = 0; i < s->length&&i < t->length; i++) {				if (s->str[i] != t->str[i]) {					cout << "不相等!" << endl;					flag = 1;					break;				}			}			if (flag == 0) {				cout << "相等!" << endl;			}		}	}}//串連接void HStringConCat(HString *s,HString *t) {					HString s1;	init(&s1);	int i = 0;	HStringAssign(&s1, s);	s->length += t->length;	free(s->str);	s->str = (char*)malloc((s->length+1)*sizeof(char));	for (; i < s1.length; i++) {		s->str[i] = s1.str[i];	}	for (; i < s->length;i++) {		s->str[i] = t->str[i - s1.length];	}	free(s1.str);	free(t->str);	t->str = NULL;	t->length = 0;	cout << "連接完成!" << endl;}//求子串void HStringSub(HString *s,int start,int end) {				cout << "子串為:";	for (int i = start - 1; i < end; i++) {		cout << s->str[i];	}	cout << endl;}//子串定位void HStringIndex(HString *s,HString *t) {					int i = 0,j = 0;	while (i < s->length &&j < t->length) {		if (s->str[i] == t->str[j]) {			i++; 			j++;		}		else {			i = i - j + 1;			j = 0;		}	 }	if (j == t->length) {		cout << "子串的位置為:" << i-t->length + 1 << endl;	}	else {		cout << "沒有該子串!" << endl;	}}//串置換void HStringReplace(HString *s,HString *t) {			HString s1;	init(&s1);	HStringAssign(&s1, s);	HStringAssign(s, t);	HStringAssign(t, &s1);	free(s1.str);	s1.length = 0;	s1.str = NULL;	cout << "置換成功!" << endl;}//插入子串void HStringInsert(HString *s,int start,HString *t) {		HString s1;	init(&s1);	int i = 0,j;	HStringAssign(&s1, s);	s->length += t->length;	free(s->str);	s->str = (char*)malloc((s->length + 1) * sizeof(char));	for (; i < start-1; i++) {		s->str[i] = s1.str[i];	}	j = i;	for (int k = 0; k < t->length; k++, i++) {		s->str[i] = t->str[k];	}	for (; i < s->length; i++, j++) {		s->str[i] = s1.str[j];	}	cout << "插入成功!" << endl;}//刪除子串void HStringDelet(HString *s,int start,int length) {		int i = start,flag,k=length;	char c;	while (length != 0) {		s->str[i - 1] = 0;		length--;		i++;	}	for (int m = 0; m < s->length;m++) {		if (s->str[m] != 0 && s->str[m - 1] == 0) {			flag = m;			while (flag) {				if (s->str[flag - 1] != 0) {					break;				}				c = s->str[flag - 1];				s->str[flag - 1] = s->str[flag];				s->str[flag] = c;				flag--;			}		}	}	s->length -=k;	cout << "刪除成功!" << endl;}void message() {	cout << "************************************************************" << endl;	cout << "*	1  	輸出串          	2	串賦值	   *" << endl;	cout << "*	3	判串相等		4	求串長	   *" << endl;	cout << "*	5	串連接			6	求子串	   *" << endl;	cout << "*	7	子串定位		8	串置換	   *" << endl;	cout << "*	9	插入子串		10	刪除子串   *" << endl;	cout << "*	11	清屏			12	退出	   *" << endl;	cout << "************************************************************" << endl;}void main() {	int temp = 0,length;	HString S1, S2;	message();	cout << "對串S1進行初始化:" << endl;	HStringInit(&S1);	cout << "對串S2進行初始化:" << endl;	HStringInit(&S2);	int i = 0;	while (1) {				cin >> i;		switch (i) {		case 1:cout << "請輸入你要輸出的串    1:  S1,    2:   S2" << endl;										cin >> temp;					switch (temp) {							case 1:print(&S1); break;							case 2:print(&S2); break;							default:cout << "輸入錯誤!" << endl; break;					}				break;		case 2:	cout << "將S2賦值給S1" << endl;					HStringAssign(&S1, &S2);				break;		case 3:cout << "判斷S1和S2是否相等?" << endl;					HStringCompar(&S1, &S2);				break;		case 4:cout << "請輸入你要求的串    1:  S1,    2:   S2" << endl;					cin >> temp;					switch (temp) {							case 1:HStringLength(&S1); break;							case 2:HStringLength(&S2); break;							default:cout << "輸入錯誤!" << endl; break;					}				break;		case 5:cout << "將串S2連接到S1上!" << endl;					HStringConCat(&S1, &S2);				break;		case 6:cout << "求S1的子串:" << endl;				cout << "請輸入開始位置和長度:" << endl;				cin >> temp >> length;				if (temp > S1.length) {					cout << "輸出位置錯誤!" << endl;					break;				}				else {					if ((length - temp) > S1.length) {						cout << "子串長度超出!" << endl;					}					else {						HStringSub(&S1, temp, length);					}				}				break;		case 7:cout << "子串S2在S1中的位置" << endl;			HStringIndex(&S1,&S2);			break;		case 8:cout << "將S1和S2置換!" << endl;				HStringReplace(&S1,&S2);			break;		case 9:cout << "將S2插入到S1中" << endl;				cout << "請輸入插入位置:" << endl;				cin >> temp;				if (temp >= S1.length) {					cout << "插入位置錯誤!" << endl;					break;				}				else {					HStringInsert(&S1,temp,&S2);				}			break;		case 10:cout << "刪除S1的子串:" << endl;				cout << "請輸入開始位置和長度:" << endl;				cin >> temp >> length;				if (temp > S1.length) {					cout << "輸出位置錯誤!" << endl;					break;				}				else {					if ((length + temp) > S1.length+1) {					cout << "子串長度超出!" << endl;					}					else {						HStringDelet(&S1, temp, length);					}				}break;		case 11:system("cls"); message(); break;		case 12:exit(0); break;		default:cout << "輸入錯誤!請重新輸入:" << endl; break;		}	}}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美肥老太性生活视频| 日韩色av导航| 久久久噜噜噜久噜久久| 狠狠爱在线视频一区| 日本亚洲精品在线观看| 国产日韩中文在线| 国产综合视频在线观看| 91欧美精品午夜性色福利在线| 欧美激情中文网| 亚洲国产一区二区三区四区| 久久精品国产欧美亚洲人人爽| 日韩精品极品视频| 欧美激情亚洲一区| 色无极影院亚洲| 精品女同一区二区三区在线播放| 伊人久久久久久久久久久| 日韩中文字幕视频在线| 亚洲成人av在线| 欧美精品videofree1080p| 久久久人成影片一区二区三区| 日本不卡高字幕在线2019| 午夜精品久久久久久久99黑人| 欧美影院久久久| 日韩电影中文 亚洲精品乱码| 91精品国产高清| 91社区国产高清| 午夜精品久久久久久久白皮肤| 国产欧美久久一区二区| 亚洲激情视频在线观看| 一道本无吗dⅴd在线播放一区| 2025国产精品视频| 中文字幕久热精品视频在线| 日韩精品免费在线视频观看| 一区二区在线免费视频| 91精品国产综合久久久久久久久| 久久91亚洲精品中文字幕| 国产精品大片wwwwww| 热99精品里视频精品| 亚洲免费一在线| 国产精品美女久久| 久久av红桃一区二区小说| 国产综合在线看| 97视频网站入口| 久久综合亚洲社区| 国产精品夜间视频香蕉| 国产免费一区二区三区在线能观看| 国产精品久久久久99| 午夜精品久久久久久久久久久久久| 日本精品视频在线播放| 成人妇女免费播放久久久| 日韩中文字幕在线播放| 在线观看精品自拍私拍| 欧美怡春院一区二区三区| 91在线中文字幕| 日韩精品在线电影| 欧美色另类天堂2015| 国产精品美女主播| 欧美人在线观看| 国产一区二区丝袜| 国产精品最新在线观看| 国产欧美一区二区三区视频| 亚洲一区二区自拍| 亚洲欧美日韩国产中文专区| 国产一区二区久久精品| 一本久久综合亚洲鲁鲁| 欧美成人精品三级在线观看| 亚洲日韩中文字幕在线播放| 欧美成人中文字幕| 日韩人在线观看| 国产日本欧美一区二区三区在线| 人妖精品videosex性欧美| 91精品视频免费观看| 国产精品最新在线观看| 国产mv免费观看入口亚洲| 亚洲福利在线观看| 九九久久久久久久久激情| 911国产网站尤物在线观看| 一本色道久久88综合日韩精品| 亚洲精品久久久久国产| 日韩经典第一页| 国内揄拍国内精品少妇国语| 日韩少妇与小伙激情| 性色av香蕉一区二区| 日韩av在线免费观看一区| 欧美成人久久久| 欧美视频在线观看免费| 丝袜美腿亚洲一区二区| 欧美精品久久久久久久久久| 亚洲高清久久久久久| 欧美在线视频播放| 亚洲精品国产综合区久久久久久久| 成人日韩在线电影| 欧美多人乱p欧美4p久久| 国产成人久久久精品一区| 亚洲最大av在线| 亚洲aa中文字幕| 欧美一区视频在线| 日韩av在线免费观看一区| 欧美一区二区大胆人体摄影专业网站| 亚洲视频一区二区三区| 成人美女免费网站视频| 久久国产视频网站| 久久久久女教师免费一区| 岛国av一区二区| 这里只有精品在线观看| 九九热精品视频国产| 国产视频精品va久久久久久| 欧美成年人视频网站欧美| 欧洲精品毛片网站| www亚洲精品| 日韩在线免费观看视频| 中文字幕亚洲欧美一区二区三区| 奇米成人av国产一区二区三区| 68精品久久久久久欧美| 高清一区二区三区日本久| 成人福利视频网| 亚洲丁香久久久| 亚洲国产古装精品网站| 欧美精品生活片| 日韩美女中文字幕| 亚洲成人av资源网| 成人av色在线观看| 欧美黄色性视频| 中文字幕亚洲欧美日韩在线不卡| 欧美国产日韩中文字幕在线| 在线看片第一页欧美| 久热精品视频在线免费观看| 精品国内亚洲在观看18黄| 亚洲欧洲在线观看| 日韩大胆人体377p| 精品视频在线导航| 亚洲国产精品va在看黑人| 26uuu亚洲国产精品| 欧美午夜无遮挡| 久久久久亚洲精品国产| 国产99久久精品一区二区 夜夜躁日日躁| 欧美精品在线免费观看| 国产精品99久久久久久白浆小说| 久久久久久亚洲精品| 国产福利精品av综合导导航| 亚洲欧美另类中文字幕| 欧美自拍视频在线| 91在线观看免费高清完整版在线观看| 欧美精品久久久久久久免费观看| 久久免费视频网| 日韩精品免费在线视频观看| 国产精品一区二区av影院萌芽| 欧美制服第一页| 日韩在线欧美在线| 国产精品视频xxx| 日韩精品在线观看网站| 国产成人精品一区二区| 538国产精品一区二区免费视频| 国产精品高清在线观看| 精品亚洲一区二区三区在线观看| 亚洲精品av在线| 中日韩美女免费视频网址在线观看| 91chinesevideo永久地址| xx视频.9999.com| 91av视频在线观看| 久久婷婷国产麻豆91天堂| 亚洲精品美女在线观看| 亚洲奶大毛多的老太婆| 在线观看欧美日韩国产|