文字列の各要素を入れ替えるには
文字列は C 言語では、文字の配列として表現されています。文字列内の要素を入れ替えるには、文字の配列を繰り返し処理して対応する要素を入れ替えることで実現できます。
C言語の文字列内の要素を入れ替える方法を示すサンプルコードを以下に示します。
#include
#include
void swap(char* str, int i, int j) {
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
void reverseString(char* str) {
int length = strlen(str);
int i, j;
for (i = 0, j = length - 1; i < j; ++i, --j) {
swap(str, i, j);
}
}
int main() {
char str[] = "Hello, World!";
printf("Original String: %s\n", str);
reverseString(str);
printf("Reversed String: %s\n", str);
return 0;
}
上記のコードでは、`swap()` 関数が文字配列 `str` のインデックス `i` と `j` の要素を入れ替えるために使用されます。`reverseString()` 関数は2つのポインタを使用して、文字列の両端から中央に向かって繰り返し、`swap()` 関数を呼び出して要素を入れ替えます。最終的に文字列が反転されます。
なおC言語の文字列はNULL文字`\0`で終わっているので、文字列操作時には文字列の最後に`\0`がある事を確認する必要があり、確認できない場合は未定義動作となる場合がある。
このコードは以下を出力します。
Original String: Hello, World! Reversed String: !dlroW ,olleH
これで、C言語文字列の要素の入れ替えが完了した。