上机内容:学习,了解
上机目的:学习两字符串比较
/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: 1.cpp
* 作 者:刘杰
* 完成日期: 2012 年12 月21 日
* 版本号: v1.0
*
* 输入描述:
* 问题描述:比较两个字符串大小,似strcmp();
*/
#include <iostream>
using namespace std;
int astrcmp(const char str1[], const char str2[]);
int pstrcmp(const char *str1, const char *str2);
int main()
{
char s1[50]="Today is the last day!";
char s2[50]="I will stay with you forever!";
int c;
// 从下面的调用中可以体会数组、指针本质上的相同一面
if(astrcmp(s1,s2)==0){
cout<<"s1=s2"<<endl;
}else if(astrcmp(s1,s2)==1){
cout<<"s1>s2"<<endl;
}else{
cout<<"s2>s1"<<endl;
}//用形参
if(pstrcmp(s1,s2)==0){
cout<<"s1=s2"<<endl;
}else
if(pstrcmp(s1,s2)==1){
cout<<"s1>s2"<<endl;
}else{
cout<<"s2>s1"<<endl;
}//用指针
c=strcmp(s1,s2);
cout<<c<<endl;//比较2个字符串的大小……s1=s2,strcmp(s1,s2) == 0;s1>s2, strcmp(s1,s2) == 1;s1<s2, strcmp(s1,s2) == -1;
return 0;
}
int astrcmp(const char str1[], const char str2[])
{
int i;
i=str1-str2;
if(i>0){
return 1;
}else if(i<0){
return -1;
}else
return 0;
}
int pstrcmp(const char *str1, const char *str2)
{
const char *p1=str1,*p2=str2;
int i;
while(*p1!='\0'&&*p2!='\0')
{
p1++;
p2++;
}
i=*p1-*p2;
if(i>0){
return 1;
}else if(i<0){
return -1;
}else
return 0;
}
运行结果: