Kiểm tra chuỗi có phải là chuỗi đối xứng hay không trong C
Trong bài tập này, mình sẽ viết một chương trình trong ngôn ngữ lập trình C để kiểm tra xem một chuỗi có phải là chuỗi đối xứng hay không.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
- Nhập vào một chuỗi từ người dùng.
 - Kiểm tra xem chuỗi đó có phải là chuỗi đối xứng hay không.
 - Chuỗi được coi là đối xứng nếu nó đọc từ trái sang phải hoặc từ phải sang trái đều giống nhau.
 
Kiểm tra chuỗi đối xứng trong C
Cách giải quyết bài lập trình
- Sử dụng hai con trỏ, một trỏ tới đầu chuỗi và một trỏ tới cuối chuỗi.
 - So sánh ký tự tại vị trí tương ứng của hai con trỏ.
 - Nếu tất cả các ký tự tương ứng giống nhau, chuỗi được coi là đối xứng.
 - Nếu có ít nhất một cặp ký tự không giống nhau, chuỗi không đối xứng.
 
Hãy xem cách giải như sau:
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
    int left = 0;
    int right = strlen(str) - 1;
    while (left < right) {
        if (str[left] != str[right]) {
            return 0; // Không đối xứng
        }
        left++;
        right--;
    }
    return 1; // Đối xứng
}
int main() {
    char str[100];
    printf("Nhập chuỗi: ");
    fgets(str, sizeof(str), stdin);
    // Loại bỏ ký tự newline từ fgets
    if (str[strlen(str) - 1] == '\n') {
        str[strlen(str) - 1] = '\0';
    }
    if (isPalindrome(str)) {
        printf("Chuỗi \"%s\" là chuỗi đối xứng.\n", str);
    } else {
        printf("Chuỗi \"%s\" không phải là chuỗi đối xứng.\n", str);
    }
    return 0;
}
Kết quả chạy thứ nhất:
Bài viết này được đăng tại [free tuts .net]
Nhập chuỗi: radar Chuỗi "radar" là chuỗi đối xứng.
Kết quả chạy thứ hai:
Nhập chuỗi: hello Chuỗi "hello" không phải là chuỗi đối xứng.
Trên đây là cách viết một chương trình trong ngôn ngữ lập trình C để kiểm tra xem một chuỗi có phải là chuỗi đối xứng hay không. Chúc bạn thực hiện thành công!

            Các kiểu dữ liệu trong C ( int - float - double - char ...)        
            Thuật toán tìm ước chung lớn nhất trong C/C++        
            Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)        
            ComboBox - ListBox trong lập trình C# winforms        
            Random trong Python: Tạo số random ngẫu nhiên        
            Lệnh cin và cout trong C++        
                Cách khai báo biến trong PHP, các loại biến thường gặp            
                Download và cài đặt Vertrigo Server            
                Thẻ li trong HTML            
                Thẻ article trong HTML5            
                Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên            
                Cách dùng thẻ img trong HTML và các thuộc tính của img            
                Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng