C语言 PTA 6-1 字符串比较

问题描述:

函数fun的功能是比较两个字符串,如果s1=s2,则返回值0;如果s1>s2,则返回值1;如果s1<s2,则返回-1。

函数接口定义:

 

int fun(char a[],char b[]);

其中ab是用户传入的参数。 函数比较两个字符串,如果a=b,则返回值0;如果a>b,则返回值1;如果a<b,则返回-1。

裁判测试程序样例:

 

#include "stdio.h" #include "string.h" int fun(char a[],char b[]); int main() {int t; char s1[40],s2[40]; gets(s1); gets(s2); t=fun(s1,s2); printf("%d\n",t); return 0; } /* 请在这里填写答案 */

输入样例:

asd
fg

输出样例:

-1

思路:

  1. 首先,使用 strlen 函数计算字符串 a 和字符串 b 的长度,分别存储在变量 len1 和 len2 中。同时,计算两者中的较小值,存储在变量 min 中。
  2. 然后,初始化一个标志变量 flag 为 1,用于记录比较的结果。
  3. 使用一个循环遍历两个字符串的前 min 个字符。在循环中,如果发现 a[i](即字符串 a 的第 i 个字符)大于 b[i](即字符串 b 的第 i 个字符),就将 flag 设置为 2,并跳出循环。如果发现 a[i] 小于 b[i],就将 flag 设置为 3,并跳出循环。
  4. 循环结束后,根据 flag 的值返回比较结果。如果 flag 为 1,说明两个字符串相等,返回 0;如果 flag 为 2,说明字符串 a 大于字符串 b,返回 1;如果 flag 为 3,说明字符串 a 小于字符串 b,返回 -1。

 

代码:

int fun(char a[],char b[]){
    int len1 = strlen(a);
    int len2 = strlen(b);
    int min = len1 <= len2 ? len1 : len2;
    int flag = 1;
    for(int i=0; i<min; i++){
        if(a[i]>b[i]){
            flag = 2;
            break;
        }
        else if(a[i]<b[i]){
            flag = 3;
            break;
        }
    }
    if(flag==1) return 0;
    else if(flag==2) return 1;
    else if(flag==3) return -1;
}

运行截图:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值