<强> C语言数据结构串的基本操作实例代码强>
<强>输出结果:强>
<>强实现代码:强>
# include使用名称空间性病; typedef int状态; #定义最大20 #定义好1 #定义错误0 #定义OVERLOE 2 typedef结构//堆分配表示串 { char * ch; int长度; }HString;//===================================================================状态CreatHString (HString, H)//构造字符串 { H。长度=0; H。ch=(char *) malloc (Max * sizeof (char)); for (int i=0;我& lt;马克思;我+ +) { H.ch[我]=获取字符(); H.length + +; 如果(获取字符()==' \ n ') 打破; } 还好; }//CreatHString//===================================================================状态PrintHString (HString H)//输出所输入的字符串 { 如果(H。长度==0) { cout & lt; & lt;“空串!”& lt; & lt;endl; 返回错误; } 其他的 for (int i=0;我& lt;H.length;我+ +) cout & lt; & lt;H。ch[我]& lt; & lt;“”; cout & lt; & lt;endl; 还好; }//PrintHString//===================================================================状态HStringLength (HString H)//求字符串的长度 { cout & lt; & lt;“您输入的字符串长度为:“& lt; & lt;endl; cout & lt; & lt;H。长度& lt; & lt;endl; 还好; }//HStringLength//===================================================================状态HStringCompare (HString H, HString T)//求两个字符串长度差(绝对值) { cout & lt; & lt;”两个字符串的长度差为:“& lt; & lt;endl; int L; L=H。长度- T.length; 如果(L<0) cout & lt; & lt;- l & lt; & lt;endl; 如果(L>=0) cout & lt; & lt;L & lt; & lt;endl; 还好; }//HStringCompare//===================================================================状态ConcatHString (HString和年代,HString H, HString T)//链接H和T { 如果(! (S。ch=(char *) malloc (H。长度+ T.length) * sizeof (char)))) 退出(OVERLOE); for (int i=0;我& lt;H.length;我+ +) 年代。ch[我]=H.ch[我]; 年代。长度=H。长度+ T.length; for (int j=H.length;j & lt;S.length;j + +) 年代。ch [j]=T.ch [j-H.length]; 还好; }//ConcatHString//===================================================================状态SubHString (HString和子,HString年代,int pos, int len) {//用子返回串年代的pos第个字符起长度为len的子串 如果(pos<1 | | pos> S.length) { cout & lt; & lt;“输入的位置有误!”& lt; & lt;endl; 返回错误; } 如果(len<0 | | len> S。长度- pos + 1) { cout & lt; & lt;“输入的长度有误!”& lt; & lt;endl; 返回错误; } 如果(!兰) { Sub.ch==零; Sub.length=0; } 其他的 { Sub.ch=(char *) malloc (len * sizeof (char)); for (int i=0;我& lt;兰;我+ +) Sub.ch[我]=h (pos + i - 1); Sub.length=兰; } 还好; }//SubHString//===================================================================状态ClearHString (HString, H)//将H清为空串 { 如果(H.ch) { 免费(H.ch); H。ch=零; } H。长度=0; 还好; }//ClearHString//===================================================================void main () { HString S H T; cout & lt; & lt;“请输入一个字符串(按回车键结束):“& lt; & lt;endl; CreatHString (H); cout & lt; & lt;“现在串中的字符为:“& lt; & lt;endl; PrintHString (H); HStringLength (H); cout & lt; & lt;“请再输入一个字符串(按回车键结束):“& lt; & lt;endl; CreatHString (T); HStringCompare (H T); ConcatHString (S H, T); cout & lt; & lt;“现在串中的字符为:“& lt; & lt;endl; PrintHString(年代); HString子; int pos, len; cout & lt; & lt;“请输入截取位置pos及长度len:“& lt; & lt;endl; , cin祝辞的在pos祝辞祝辞兰; SubHString(下标S、pos len); cout & lt; & lt;“截取的子串为:“& lt; & lt;endl; PrintHString(子); ClearHString(年代); cout & lt; & lt;“检验年代清空后是否为空:“& lt; & lt;endl; PrintHString(年代); }//主要 >之前
c++语言数据结构串的基本操作实例代码