C言語で文字列を逆順にする方法は?
以下の方法を使用して C 言語で文字列を逆にできます。
- ポインターを利用:文字列の先頭位置を指すポインターと、末尾位置を指すポインターの2つを定義し、ポインターが指す文字を入れ替えることで文字列を逆順にする。2つのポインターが交差するまで入れ替えを繰り返す。
void reverseString(char* str) {
if (str == NULL) {
return;
}
char* start = str;
char* end = str + strlen(str) - 1;
while (start < end) {
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
- 配列を使うと、新しい文字配列を作成して、元の文字列の文字を末尾から順に新しい配列にコピーすることで、逆順になった文字列を取得できます。
void reverseString(char* str) {
if (str == NULL) {
return;
}
int length = strlen(str);
char reversed[length + 1];
for (int i = length - 1; i >= 0; i--) {
reversed[length - 1 - i] = str[i];
}
reversed[length] = '\0';
strcpy(str, reversed);
}
どちらの方法も文字列の逆転を実現できますが、どちらを使用するかは実際のニーズと個人的な好みに応じて異なります。