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!