c++程序设计第3版谭浩强课后答案
C++编程,要求用指针或引用方法处理:输入3个字符串,按由小到大的顺序输出。
以下是此题的【c++源代码】
方法1,用字符数组方法:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{void swap(char *,char *);
char str1[20],str2[20],str3[20];
cout<<"input three line:"<<endl;
gets(str1);
gets(str2);
gets(str3);
if(strcmp(str1,str2)>0) swap(str1,str2);
if(strcmp(str1,str3)>0) swap(str1,str3);
if(strcmp(str2,str3)>0) swap(str2,str3);
cout<<endl<<"Now,the order is:"<<endl;
cout<<str1<<endl<<str2<<endl<<str3<<endl;
return 0;
}
void swap(char *p1,char *p2) /* 交换两个字符串 */
{char p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
}
方法2,用string方法,程序中使用了指针和引用
#include <iostream>
#include <string>
using namespace std;
int main()
{void change(string &,string &);
string str1=" ",
str2=" ",
str3=" ";
char *p1=&str1[0],*p2=&str2[0],*p3=&str3[0];
cout<<"input three line:"<<endl;
gets(p1);
gets(p2);
gets(p3);
if(str1>str2)change(str1,str2);
if(str1>str3)change(str1,str3);
if(str2>str3)change(str2,str3);
cout<<endl<<"Now,the order is:"<<endl;
cout<<str1<<endl<<str2<<endl<<str3<<endl;
return 0;
}
void change(string &st1,string &st2) /* 交换两个字符串 */
{string st;
st=st1;st1=st2;st2=st;
}
本文链接:http://www.wb98.com/cjia/post/cjia_6.2.html
本站文章搜索: