目次から探す
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型の値の比較を利用することで実現することができます。