Dưới đây là ví dụ hoán đổi nội dung hai chuỗi ký tự trong C:
Ví dụ
#include <stdio.h>
#include <string.h>
int main() {
char st1[] = "My 1st string";
char st2[] = "My 2nd string";
char swap;
int i = 0;
while (st1[i] != '\0') {
swap = st1[i];
st1[i] = st2[i];
st2[i] = swap;
i++;
}
printf("Sau hoan doi s1: %s\n", st1);
printf("Sau hoan doi s2: %s\n", st2);
return 0;
}
Kết quả
Sau hoan doi s1: My 2nd string
Sau hoan doi s2: My 1st string
Giải thích: Hai mảng st1, st2 cùng kích thước. Vòng lặp duyệt qua từng ký tự cho đến hết chuỗi st1 (gặp \0), hoán đổi ký tự tương ứng.
Lưu ý: Cách này chỉ hoạt động nếu hai chuỗi cùng độ dài (hoặc chuỗi đích đủ lớn). Nếu độ dài khác nhau, cần xử lý riêng (ví dụ: dùng
strcpy vào buffer tạm, hoặc cấp phát động). Trong C++, hãy dùng std::swap(str1, str2) cho std::string – an toàn và hiệu quả.