文字列を逆順にする方法C言語
ループを使って文字列を逆にできます。
具体的な手順は次のとおりです。
- 文字列の長さを計算する。
- ポインタが2つ必要で、1つは文字列の先頭、もう1つは末尾を指します。
- 互いに合流する前、二つの指し示す文字を入れ替え、その指し示すものを互いに1つずらしながら中心に近づける。
- ポインタが合流するまで文字列を逆順に並べる。
サンプルコードを以下に示します。
#include <stdio.h>
#include <string.h>
void reverse_string(char *str) {
int len = strlen(str);
char *start = str;
char *end = str + len - 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);
reverse_string(str);
printf("Reversed string: %s\n", str);
return 0;
}
実行結果:
Original string: Hello, World!
Reversed string: !dlroW ,olleH