c++应用指针完成两个字符串大小的比较
发布网友
发布时间:2023-07-16 11:28
我来回答
共3个回答
热心网友
时间:2024-01-01 03:32
#include <iostream.h>
int cmp(char *a,char *b)
{
while(*a&&*b&&*a==*b)//对a和b的每一位进行比较
a++,b++;
int s=*a-*b; //比较下一位的ASCII码值,a大返回1,b大返回-1,否则返回0
if(s>0)
return 1;
else if(s<0)
return -1;
else return 0;
}
void main()
{
char a[]="abcdefg";
char b[]="abcdef";
int t=cmp(a,b);
if(t==0)
cout<<"a和b相等";
else if(t==1)
cout<<"a比b大";
else cout<<"a比b小";
cout<<endl;
}
或者:
#include <iostream.h>
int cmp(char *a,char *b)
{
while(*a&&*b&&*a==*b)//对a和b的每一位进行比较
a++,b++;
if(!*a)//a字符串结束
{
if(!*b)//如果b也结束,则说明a和b相等,返回0
return 0;
else //如果b没有结束,说明b比a大,返回-1
return -1;
}
else if(!*b)//如果a没有结束,b结束,则a大,返回1
return 1;
else if(int (*a)>int (*b))//a和b都没有结束,比较下一个字符(通过转化成ASCII码比较)
return 1; //如果a大,返回1
else return -1; //如果b大,返回-1
}
void main()
{
char a[]="abcdefg";
char b[]="abcdefgg";
int t=cmp(a,b);
if(t==0)
cout<<"a和b相等";
else if(t==1)
cout<<"a比b大";
else cout<<"a比b小";
cout<<endl;
}
可以改变主函数中字符串a和b的值进行比较。
热心网友
时间:2024-01-01 03:33
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1, str2;
cin >> str1 >> str2;
if(str1 > str2)
cout << str1 << ">" << str2 << endl;
else
cout << str1 << "<" << str2 << endl;
return 0;
}用string做的
热心网友
时间:2024-01-01 03:33
//---------------------------------------------------------------------------
#include <iostream>
using namespace std;
int cmp(char *a,char *b) //返回a和b指向的字符串中的第一个不相同的字符的ASCII码之差。如果相等则返回0
{
while (*a&&*b&&*a==*b)
{
++a;
++b;
}
return *a-*b;
}
int main(void)
{
char a[]="123";
char b[]="120";
cout<<cmp(a,b)<<endl;
return 0;
}
//---------------------------------------------------------------------------