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

本文介绍如何手动实现一个字符串比较函数myStrcmp,该函数用于比较两个字符串的大小,并遵循ASCII值顺序进行比较。当两个字符串相等时返回0,第一个字符串大于第二个字符串时返回1,反之返回-1。

  算法提高 11-1实现strcmp函数  
时间限制: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。

#include<stdio.h>

int myStrcmp(char *s1,char *s2)
{
int i;
for(i=0;;i++)/*for(i=0;s1[i]!='\0'||s2[i]!='\0';i++)
if(s1[i]!=s2[i]) break;(原来想写这一句,后来因为其他地方出现错误,所以改掉了;Obviously,改动的地方是错的,不必改*/

{
if(s1[i]!=s2[i]) break;
if(s1[i]=='\0'||s2[i]=='\0') break;
}

if((s1[i]-s2[i])==0) return 0;
else if((s1[i]-s2[i])>0) return 1;
else if((s1[i]-s2[i])<0) return -1;
}
int main()
{
char a[105],b[105];
gets(a);/*因为自己在这里加了一个getchar();和之前刷过的题弄混了,之前是scanf后面要加上getchar(),因为换行符会被放到缓存区从而被gets()读取;然而现在gets()就是靠着换行符来结束输入的。*/
gets(b);
printf("%d",myStrcmp(a,b));
return 0;
 } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值