c++,两个字符串连接并且排序

#include <iostream>
#include <string.h>
using namespace std; 
class KB
{
	private:
		char s1[50],s2[50];//存放两个字符串 
		char s3[100];//存放连接好的字符串 
	public:
		KB(char a1[],char a2[])//因为私有数据定义时已经分配了空间,构造函数中直接赋值即可 
		{
			strcpy(s1,a1);
			strcpy(s2,a2);
		}
		void show()//输出函数 
		{
			//cout<<s1<<" "<<s2<<endl;
			cout<<s3<<endl;
		}
		void fun()
		{
			char temp;//用来交换数据 
			strcpy(s3,s1);
			strcat(s3,s2);//完成了字符串的连接 
			char *p=s3;//定义一个指针p指向连接好的数组
			 while(*p)
			 p++;//结束循环后指针p将指向s3的最后一个字符的后一位
			 p--;//指针p指向s3的最后一个字符 
			for(char *p1=s3;p1<p;p1++)//循环条件是p1的位置小于最后一个字符的位置 
			for(char *p2=p1+1;*p2;p2++)//p2指向的是p1的后一位,循环条件是真值 
			if(*p1>*p2) 
			{
				temp=*p1;
				*p1=*p2;
				*p2=temp;
			}
		}
};
int main()
{
	cout<<"输入两个字符串"<<endl; 
	char w1[50],w2[50];
	cin>>w1>>w2;
	KB zk(w1,w2);
	zk.fun() ;
	zk.show() ;
}

发布了7 篇原创文章 · 获赞 0 · 访问量 130

猜你喜欢

转载自blog.csdn.net/zzzzzkkk/article/details/104696853