【C言語】char型の値を比較する方法について解説

目次から探す

char型の値の比較の応用例

char型の値の比較は、文字列のソートや辞書順の比較など、さまざまな応用があります。

ここでは、その中でも特によく使われる応用例について説明します。

文字列のソート

文字列のソートとは、与えられた文字列を昇順または降順に並び替えることです。

char型の値の比較を利用して、文字列のソートを行うことができます。

以下に、文字列のソートを行うサンプルコードを示します。


#include <stdio.h>
#include <string.h>
void sortString(char str[]) {
    int length = strlen(str);
    char temp;
    for (int i = 0; i < length - 1; i++) {
        for (int j = i + 1; j < length; j++) {
            if (str[i] > str[j]) {
                temp = str[i];
                str[i] = str[j];
                str[j] = temp;
            }
        }
    }
}
int main() {
    char str[] = "programming";
    
    printf("Before sorting: %s\n", str);
    
    sortString(str);
    
    printf("After sorting: %s\n", str);
    
    return 0;
}

このコードでは、sortString関数を定義しています。

この関数では、与えられた文字列をバブルソートアルゴリズムを用いて昇順に並び替えています。

main関数では、文字列をソートする前とソートした後の結果を表示しています。

実行結果は以下のようになります。

Before sorting: programming
After sorting: aggimmnoprr

辞書順の比較

辞書順の比較とは、文字列を辞書のように順序付けることです。

char型の値の比較を利用して、文字列の辞書順を比較することができます。

以下に、辞書順の比較を行うサンプルコードを示します。


#include <stdio.h>
#include <string.h>
int compareStrings(char str1[], char str2[]) {
    int length1 = strlen(str1);
    int length2 = strlen(str2);
    int minLength = (length1 < length2) ? length1 : length2;
    for (int i = 0; i < minLength; i++) {
        if (str1[i] < str2[i]) {
            return -1;
        } else if (str1[i] > str2[i]) {
            return 1;
        }
    }
    if (length1 < length2) {
        return -1;
    } else if (length1 > length2) {
        return 1;
    } else {
        return 0;
    }
}
int main() {
    char str1[] = "apple";
    char str2[] = "banana";
    
    int result = compareStrings(str1, str2);
    
    if (result < 0) {
        printf("%s comes before %s\n", str1, str2);
    } else if (result > 0) {
        printf("%s comes after %s\n", str1, str2);
    } else {
        printf("%s is equal to %s\n", str1, str2);
    }
    
    return 0;
}

このコードでは、compareStrings関数を定義しています。

この関数では、与えられた2つの文字列を順番に比較し、辞書順での大小関係を返します。

main関数では、2つの文字列を比較し、その結果に応じてメッセージを表示しています。

実行結果は以下のようになります。

apple comes before banana

以上が、char型の値の比較の応用例についての説明です。

文字列のソートや辞書順の比較は、char型の値の比較を利用することで実現することができます。

1 2

この記事のページ一覧
  1. 現在のページ
目次から探す