Phần này xem cách đảo ngược chuỗi tại chỗ (không dùng bộ nhớ khác). Trong C++ có std::string. C dùng mảng ký tự. Chương trình dùng mảng ký tự nhận chuỗi, rồi đảo ngược.
Đầu vào: Chuỗi "This is a string" Đầu ra: Chuỗi đảo "gnirts a si sihT"
Thuật toán
reverse_string(str)
Đầu vào - Chuỗi
Đầu ra - Chuỗi đảo ngược.
len := độ dài chuỗi
i := 0 và j := (len-1)
khi i < j, làm
hoán đổi ký tự vị trí i và j
i := i + 1
j := j - 1
kết thúcVí dụ mã
#include <iostream>
#include<cstring>
using namespace std;
void reverse(char s[]) {
int len = strlen(s); // lấy độ dài chuỗi
int i, j;
for(i = 0, j = len - 1; i < j; i++, j--) {
swap(s[i], s[j]);
}
}
int main() {
char s[20] = "This is a string";
cout << "Chuỗi gốc: " << s << endl;
reverse(s);
cout << "Chuỗi đảo: " << s << endl;
}Kết quả
Chuỗi gốc: This is a string Chuỗi đảo: gnirts a si sihT