C言語で文字列を逆から出力する方法は何ですか?
C 言語で文字列を逆順に出力するには、以下の手順で実現できます。
- 最初に、文字列の長さを求める。 文字列の長さを求めるには標準ライブラリのstrlen関数を使用する。
- 反転した文字列を格納するための新しい文字配列を作成します.
- 末尾から文字を一つずつ新しい文字配列にコピーしながらループを使用します。
- 最後に文字列を逆にした新しい文字配列を出力
サンプルコードを以下に示します。
#include <stdio.h>
#include <string.h>
void reverseString(const char* str) {
int len = strlen(str);
char reverseStr[len + 1]; // 新的字符数组,多1个用于存放字符串结束符'\0'
for (int i = len - 1, j = 0; i >= 0; i--, j++) {
reverseStr[j] = str[i];
}
reverseStr[len] = '\0'; // 添加字符串结束符
printf("Reversed string: %s\n", reverseStr);
}
int main() {
const char* str = "Hello World!";
printf("Original string: %s\n", str);
reverseString(str);
return 0;
}
上記コードを実行すると、結果が出力されます:
Original string: Hello World!
Reversed string: !dlroW olleH
上記の例では、まずstrlen関数で文字列の長さを取得し、元の文字列の長さ+1の長さの新しい文字配列reverseStrを作成します。そして、文字列の末尾から順にループをして文字を一つずつ新しい文字配列にコピーし、インデックスiを減算させ、インデックスjを増算させることでコピーの位置を制御します。最後に新しい文字配列に文字列終了記号’\0’を追加して結果を出力します。