/*
*程序的版权和版本声明部分:
*Copyright(c)2013,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:田成琳
*完成日期:2013年 12月13 日
*版本号:v1.0
*对任务及求解方法的描述部分:
*输入描述: 两个字符串
*问题描述:写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为
int stringcmp(char *p1,char *p2);
设p1指向字符串s1,p2指向字符串s2。
要求当s1=s2时,返回值为0,若s1≠s2,返回它们二者第1个不同字符的ASCII码差值
(如"BOY"与"BAD",第2个字母不同,"O"与"A"之差为79-65=14)。
如果s1>s2,则输出正值,如s1<s2,则输出负值。
*程序输出:比较结果
*问题分析:
*算法设计:
*/
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int stringcmp(char *,char *);
int m;
char str1[80],str2[80],*p1,*p2;
cin>>str1;
cin>>str2;
p1=&str1[0];
p2=&str2[0];
m=stringcmp(p1,p2);
cout<<m<<endl;
return 0;
}
int stringcmp(char *a,char *b)
{
int i,n;
bool flag=true;
for(i=0;*(a+i)!='\0',*(b+i)!='\0';i++)
{
if(*(a+i)!=*(b+i))
{
flag=false;
break;
}
}
if(flag)
return (0);
else
{
for(i=0;a[i]!='\0',b[i]!='\0';i++)
{
if(*(a+i)!=*(b+i))
{
n=int(*(a+i))-int(*(b+i));
break;
}
}
}
return n;
}
运行结果:
心得体会: