题目
实现字符串比较(不用 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