串 比较

本文档提供了一个不依赖库函数的字符串比较操作实现。该函数考虑了大小写的比较,当字母互为大小写时视为相等。函数返回值根据比较结果确定,返回值为负表示ptr1小于ptr2,返回值为零表示两者相等,返回值为正表示ptr1大于ptr2。代码中详细展示了比较过程和逻辑判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:

不调用库函数,自己实现字符串的比较操作:该操作当比较的两个字符是都是字母,且两个字符互为大小写(如a和A、e和E)时认为两个字符相同,否则不同,其比较结果按这两个字符的原值确定。函数的返回值规定如下:
返回值 < 0:第一个不匹配的字符在 ptr1 中的值低于 ptr2 中的值
返回值 == 0:两个字符串的内容相等
返回值 > 0:第一个不匹配的字符在 ptr1 中的值大于在 ptr2 中的值

函数原型如下:
int str_compare(const char* ptr1, const char* ptr2);

代码:

#include "dsstring.h" //请不要删除,否则检查不通过
#include <stdio.h>
#include <stdlib.h>

int str_compare(const char* ptr1, const char* ptr2)
{
    char a, b;
    int i, n, k;
    i = 0;
    n = 0;
    k = 0;
    while (ptr1[n] != '\0') {
        n++;
    }
    while (ptr2[k] != '\0') {
        k++;
    }

    while (i <= n && i <= k) {
        a = ptr1[i];
        b = ptr2[i];
        if (a == b || (a - 32) == b || (a + 32) == b) {
            i++;
        } else if (a < b) {
            return -1;
        } else {
            return 1;
        }
    }
    if (n == k) {
        return 0;
    } else if (n < k) {
        return -1;
    } else {
        return 1;
    }
}

代码仅供参考,望多多思考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值