C++编写一函数,比较两个字符串的大小,不能用strcmp
编写一函数,比较两个字符串的大小,参数为两个字符串,如果第一个参数字符串大于第二个参数字符串,返回1,如果相等返回0,如果第一个字符串小于第二个字符串,返回-1。在主函数...
编写一函数,比较两个字符串的大小,参数为两个字符串,如果第一个参数字符串大于第二个参数字符串,返回1,如果相等返回0,如果第一个字符串小于第二个字符串,返回-1。在主函数中调用该函数进行测试,注意不能使用函数strcmp()。
展开
展开全部
#include<iostream>
#include<cstring>
using namespace std;
int str_len(char * a)
{
int i;
for(i=0;a[i]!='\0';i++);
return i;
}
int str_cmp(char * a,char * b)
{
int a_size = str_len(a);
int b_size = str_len(b);
if(a_size>b_size)
return 1;
else if(a_size<b_size)
return -1;
else
{
for(int i=0;i<a_size;i++)
{
if(a[i]>b[i])
return 1;
else if(a[i]<b[i])
return -1;
}
}
return 0;
}
int main()
{
char a_1[10] = "pause";
char a_2[10] = "Pause";
char b_1[10] = "hello";
char b_2[10] = "ahh";
cout<<"str_cmp:"<<str_cmp(a_1,a_2)<<"\t";
cout<<"strcmp:"<<strcmp(a_1,a_2)<<endl;
cout<<"str_cmp:"<<str_cmp(b_1,b_2)<<"\t";
cout<<"strcmp:"<<strcmp(b_1,b_2)<<endl;
cout<<"str_cmp:"<<str_cmp(a_1,b_2)<<"\t";
cout<<"strcmp:"<<strcmp(a_1,b_2)<<endl;
cout<<"str_cmp:"<<str_cmp(a_2,b_1)<<"\t";
cout<<"strcmp:"<<strcmp(a_2,b_1)<<endl;
system("pause");
return 0;
}
测试数据比较少,麻烦LZ自己出吧
#include<cstring>
using namespace std;
int str_len(char * a)
{
int i;
for(i=0;a[i]!='\0';i++);
return i;
}
int str_cmp(char * a,char * b)
{
int a_size = str_len(a);
int b_size = str_len(b);
if(a_size>b_size)
return 1;
else if(a_size<b_size)
return -1;
else
{
for(int i=0;i<a_size;i++)
{
if(a[i]>b[i])
return 1;
else if(a[i]<b[i])
return -1;
}
}
return 0;
}
int main()
{
char a_1[10] = "pause";
char a_2[10] = "Pause";
char b_1[10] = "hello";
char b_2[10] = "ahh";
cout<<"str_cmp:"<<str_cmp(a_1,a_2)<<"\t";
cout<<"strcmp:"<<strcmp(a_1,a_2)<<endl;
cout<<"str_cmp:"<<str_cmp(b_1,b_2)<<"\t";
cout<<"strcmp:"<<strcmp(b_1,b_2)<<endl;
cout<<"str_cmp:"<<str_cmp(a_1,b_2)<<"\t";
cout<<"strcmp:"<<strcmp(a_1,b_2)<<endl;
cout<<"str_cmp:"<<str_cmp(a_2,b_1)<<"\t";
cout<<"strcmp:"<<strcmp(a_2,b_1)<<endl;
system("pause");
return 0;
}
测试数据比较少,麻烦LZ自己出吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询