C言語でポインタを使用して文字列を逆順に保存する方法は何ですか?
指定された方法に従って、ポインタ文字列を逆順に保存することができます。
- 最初に、逆順になった文字列を格納するための新しい文字型ポインタ変数を宣言します。
- 元の文字列の長さを計算するには、ライブラリ関数strlen()を使用できます。
- 新しいポインタ変数にメモリを動的に割り当て、逆順の文字列を格納できるようにします。malloc()関数を使用することができます。
- 原始文字列の各文字を、最後の文字から新しいポインタ文字列にコピーする際に、ループを使用します。
- 循環結束時,將新的指標字符串的最後一個字符設置為結束符號 ‘\0’。
- 最後に、新しいポインタ文字列を使用して、印刷や保存などの操作を行うことができます。
以下はサンプルコードです。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *str = "Hello World";
int length = strlen(str);
char *reversed_str = (char*) malloc((length + 1) * sizeof(char)); // 分配内存
for (int i = length - 1; i >= 0; i--) {
reversed_str[length - i - 1] = str[i]; // 逆序复制字符
}
reversed_str[length] = '\0'; // 添加结束符
printf("Reversed String: %s\n", reversed_str);
free(reversed_str); // 释放内存
return 0;
}
上記のコードは、次のように出力されます:逆転した文字列:dlroW olleH