C言語で文字列の内容を逆にする方法は何ですか?
C言語の配列とポインタを使用して、文字列の内容を逆にすることができます。次の手順に従って実現できます。
- 文字列の内容を反転させる関数を定義し、関数のプロトタイプは次のようになります:
void reverseString(char* str);
- 関数の中で、一つのポインタを文字列の先頭アドレスに、もう一つのポインタを文字列の末尾アドレスに指定する。そして、指定された2つのポインタを交換することで、文字列の内容を逆転させることができる。具体的なコードは以下の通りです:
void reverseString(char* str) {
char* start = str;
char* end = str + strlen(str) - 1;
while(start < end) {
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
- メイン関数内でこの関数を呼び出し、逆転させたい文字列をパラメーターとして渡します。例えば:
int main() {
char str[] = "Hello, world!";
printf("Original string: %s\n", str);
reverseString(str);
printf("Reversed string: %s\n", str);
return 0;
}
上記のコードを実行すると、元の文字列「Hello, world!」が逆になり「!dlrow ,olleH」となります。