习题 6.17 写一函数,实现两个字符串的比较,即自己写一个strcmp函数,函数原型为
int strcmp(char *p1,char *p2);
设p1指向字符串s1,p2指向字符串s2。要求当s1=s2时,返回值为0,若s1!=s2返回 他们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14)。如果s1>s2,则输出正值,如果s1<s2,则输出负值。
代码:
#include<iostream>
using namespace std;
int main()
{
char s1[20], s2[20];
int i;
int strcmp(char* , char* );
cout << "请输入第一个字符串:" << endl;
cin.getline(s1, 20);
cout << "请输入第二个字符串:" << endl;
cin.getline(s2, 20);
i = strcmp(s1, s2);
cout <<"结果为:"<< i << endl;
return 0;
}
int strcmp(char* p1, char* p2)
{
int i = 0;
while (*(p1 + i) == *(p2 + i))
{
++i;
if (*(p1 + i) == '\0')
{
return 0;
}
}
return(*(p1 + i) - *(p2 + i));
}