题目

实现字符串比较(不用 strcmp)

思路

本题自己实现字典序比较,不能调用 strcmp,返回值约定与标准库一致。 同步前进两个引用:只要两字符都非空且相等就同时后移;停止时返回两字符的无符号差值 *(unsigned char*)s1 - *(unsigned char*)s2。

解题分析

strcmp 返回第一个不相等字符的差(unsigned char 相减)。全相等返回 0;小于 0 表示 a 字典序在前。自写时别只返回 0/1,要返回差值才与标准行为一致。

完整程序

import java.io.*;

public class Main {
    public static void main(String[] args) {
        String a = "abc", b = "abd";
        System.out.println(a.compareTo(b));
    }
}

运行示例

输出:

-1