字符串操作-串的存储结构、赋值、串长、子串、匹配...(二)
t flags=1; char c,p[200]; HString t,s,r,Sub,k,a; system("cls"); InitString(&r); InitString(&a); do{ if(flags==1) menu_select(); scanf("%d",&i); switch(i){ //HString类型必须初始化 case 1:{ InitString(&t); flags=0; printf("初始化完成,请继续选择:\n"); break; } case 2:{ printf("请输入一串字符串,少于200字\n"); cin.get();//消除换行符带来的影响 cin.getline(p,200); StrAssign(&t,p);//现在t有内容 printf("串t为:"); StrPrint(t); printf("串赋值完成,请继续选择:\n"); flags=0; // system("pause"); break; } case 3:{ i=Length(t); printf("串t长为%d\n",i); //system("pause"); printf("求串长已完成,请继续选择\n"); break; } case 4:{ printf("请输入t的第i个字符,长度为len的,注意参数范围:\n"); printf("1<=i<=串长,0<=len-i+1\n"); scanf("%d%d",&m,&n); printf(" t的子串sub为"); SubString(&Sub,t,m,n);//假设从t字符串的第5个位置起长度为5的S //ubString StrPrint(Sub); printf("求子串已完成,请继续"); flags=0; //system("pause"); break; } case 5:{ printf("请输入一个字符串,少于200字\n"); InitString(&s); cin.get();//消除换行符带来的影响 cin.getline(p,200); StrAssign(&s,p);//现在t有内容 printf("串t为:"); StrPrint(t); StrCat(&t,t,s); printf("连接后的串为:"); StrPrint(t); printf("求子串已完成,请继续"); flags=0; //system("pause"); } case 6:{ printf("请输入删除串的位置和长度\n"); printf("%d %d",m,n); StrDelete(&t,m,n); StrPrint(t); flags=0; break; } case 9:{ flags=1; } // printf("%d\ns的长度为",i); // i=Length(s); // printf("%d\n下面是比较s和t:",i); /* i=StrCompare(s,r); printf("%d\n",i); printf("%d是串r从第一个字符起,和串s相同的第一\n",StrIndex(s,r,1)); printf("串r插入到串t中从四个位置,总长度为r 的大小:\n"); // StrPrint(t); //StrPrint(r); StrInsert(&t,4,r); StrPrint(t); InitString(&k); printf("串k是否空"); StrEmpty(k); StrAssign(&k,e); printf("字符串e删除从第3个位置开始,长度为3,剩下的字符串为:\n"); StrReplace(&s,r,t); StrPrint(s); StrClear(&s); printf("字符串s为"); StrPrint(s);*/ } }while(i!=0); return 0; }