神戸プログラミングアカデミーのブログ

「未経験から」「スキルアップ」「起業を目指す」無料で学べる神戸のプログラミング学校&学習コミュニティ

文字列を比較する関数strcmp()を作成せよ

文字列を比較する関数strcmp(str1,str2)を作成せよ。

str1とstr2が等しいならば0、 str1>str2ならば1、 str1<str2ならば-1を返す。

ただし1文字ずつ比較するアルゴリズムにすること。

function strcmp(str1,str2) {
}
const a = process.argv[2]
const b = process.argv[3]
console.log(strcmp(a, b) === a.localeCompare(b))

以下全てがtrueとなるように

node main.js aaa aaa
node main.js aaa bbb
node main.js aaa ccc
node main.js ccc aaa
node main.js aaa aaaa
node main.js aaaa aaa

解答例

function strcmp(a, b) {
    const length = Math.max(a.length, b.length)
    for (let i = 0; i < length; i++) {
        if (a[i] === undefined || a[i] < b[i]) {
            return -1
        } else if (b[i] === undefined || a[i] > b[i]) {
            return 1
        }
    }
    return 0
}
console.log(strcmp(process.argv[2], process.argv[3]))