文字列のソート

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
yamiyami564

文字列のソート

#1

投稿記事 by yamiyami564 » 7年前

プログラムの引数として適当な個数(3個以上100個以下)の文字列を与えて、それらを辞書順にソートするプログラムを作りたいのですが、strcmpの使い方がよくわかりません。どなたかご享受ください。

box
記事: 2002
登録日時: 13年前

Re: 文字列のソート

#2

投稿記事 by box » 7年前

こんな感じでしょうか。適当に改変してください。
大小が判別できるので、辞書順のソートができるはずです。

コード:

#include <stdio.h>
#include <string.h>

void compare_string(const char *p, const char *q)
{
    int n = strcmp(p, q);

    printf("%sは%s%s\n", p, q, n < 0 ? "より小さい" : n == 0 ? "と同じ" : "より大きい");
}

int main(void)
{
    char *s[] = { "abc", "AB", "abC", "AB", "ab", "AbC", "abC" };
    int i, j, n = sizeof(s) / sizeof(s[0]);

    for (i = 0; i < n - 1; i++) {
        for (j = i + 1; j < n; j++) {
            compare_string(s[i], s[j]);
        }
    }
    return 0;
}
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

閉鎖

“C言語何でも質問掲示板” へ戻る