当前位置:   article > 正文

蓝桥杯——练习(3.24)

蓝桥杯——练习(3.24)

蓝桥杯——练习(3.24)

算法提高 11-1 实现strcmp函数

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T412

资源限制

时间限制:1.0s 内存限制:256.0MB

问题描述

自己实现一个比较字符串大小的函数,也即实现strcmp函数。函数:int myStrcmp(char *s1,char *s2) 按照ASCII顺序比较字符串s1与s2。若s1与s2相等返回0,s1>s2返回1,s1<s2返回-1。具体来说,两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止(注意’\0’值为0,小于任意ASCII字符)。如:
  “A”<“B”
  “a”>“A”
  “computer”>“compare”
  “hello”<“helloworld”

样例输出

在这里插入图片描述

数据规模和约定

字符串长度<100。

解题思路

  • 解法一:最简单的方式就是利用string类,可以直接对字符串进行比较。

  • 解法二:手动写函数实现字符串的比较功能。

  • 解法三:调用strcmp函数实现。

代码一

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string s1,s2;
	cin>>s1>>s2;
	if(s1>s2)
		cout<<1<<endl;
	else if(s1==s2)
		cout<<0<<endl;
	else 
		cout<<-1<<endl;	
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

代码二

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int myStrcmp(char* s1,char* s2)
{
	int len1=strlen(s1);
	int len2=strlen(s2);
	for(int i=0;;i++)
	{
		if(s1[i]<s2[i])
		{
			cout<<-1<<endl;
			break;
		}
		if(s1[i]>s2[i])
		{
			cout<<1<<endl;
			break;
		}
		if(s1[i]==s2[i])
		{
			if(len1==len2)
			{
				cout<<0<<endl;
				break;
			}
			if(len1>len2)
			{
				cout<<1<<endl;
				break;
			}
			if(len1<len2)
			{
				cout<<-1<<endl;
				break;
			}
		}
	}
}
int main()
{
	char a[105];
	char b[105];
	gets(a);
	gets(b);
	myStrcmp(a,b);
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

代码三

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char s1[105];
char s2[105];
int main()
{
	gets(s1);
	gets(s2);
	int ans=strcmp(s1,s2);
	cout<<ans<<endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号