C言語のポインタを使用して文字列を逆順にの方法
ポインタを使って文字列を反転させる機能がC言語にあります。例を以下に示します。
#include <stdio.h>
#include <string.h>
void reverseString(char *str) {
int length = strlen(str);
char *start = str; // 指向字符串的起始位置
char *end = str + length - 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;
}
実行結果:
Original string: Hello, World!
Reversed string: !dlroW ,olleH
上記のコードで、reverseString関数は文字列へのポインタを受け取り、2つのポインタstartとendを使用して、文字列内で対応する位置の文字を入れ替えます。startは初期状態では文字列の先頭に、endは末尾を指します。そして、startポインタを右に1つ進め、endポインタを左に1つ戻し、ポインタが指す文字を入れ替えます。これをstartとendポインタが一致するまで繰り返します。最後に、文字列の文字は逆に並びます。