C++知识:编写程序将两个按照字母顺序排列的任意字符串进行合并。。。

C++知识:编写程序将两个按照字母顺序排列的任意字符串进行合并,合并后的字符串依然按照字母顺序排列,如achk和bfg合并后应为abcfghk。

第1个回答  2010-01-17
/*C++知识:编写程序将两个按照字母顺序排列的任意字符串进行合并,
合并后的字符串依然按照字母顺序排列,如achk和bfg合并后应为abcfghk。 */
#include <fstream>
#include <iostream>
using namespace std;
int gl(char*c)
{int i=1;
while(c[i-1]!=0)i++;return i-1;
}
char *ht(char c[2][5] )
{ int n=gl(c[0]), m=gl(c[1]),l=n+m+1;
char *d=new char[l];
for(int i=0;i<n;i++)d[i]=c[0][i];
for(;i<l;i++)d[i]=c[1][i-n];d[l]=0;return d;
}
void main()
{
char d[2][5];
fstream in("zz.txt");//zz.txt :achk bfg
if(! in)
{
cout<<"文件打开错误!"<<endl;
return ;
}
else for(int i=0;i<2;i++)
in>>d[i];
for(int i=0;i<2;i++)
cout<<d[i]<<endl;
int n=gl(d[0]), m=gl(d[1]);
cout<<n<<ends<<m<<endl;
cout<<ht(d)<<endl;
char*k=ht(d);
int l=gl(k),j;
char t;
for (i=1;i<l;i++)
{
j=i;
t=k[i];
while(j>0&&t<k[j-1])
{k[j]=k[j-1];j--;}k[j]=t;
}
cout<<k<<endl;

}本回答被提问者采纳
相似回答