SIMPLE
STRING
ARRAY
SORTING
POINTER
CALCULATION
NUMBER
OTHER
C
BÀI TẬP C
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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.

test php

banquyen png
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ùng chuyên mục:

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý chuỗi (string.h) trong C/C++

Các hàm xử lý chuỗi (string.h) trong C/C++

Thread Pools và Parallel Algorithms trong C++

Thread Pools và Parallel Algorithms trong C++

Tạo và quản lý các Multithreading trong C++

Tạo và quản lý các Multithreading trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Try, Catch, và Throw của Exception Handling trong C++

Try, Catch, và Throw của Exception Handling trong C++

Cách sử dụng Lambda Expressions trong C++

Cách sử dụng Lambda Expressions trong C++

Sử dụng weak_ptr trong C++

Sử dụng weak_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng unique_ptr trong C++

Sử dụng unique_ptr trong C++

Tổng quan về Smart Pointers trong C++

Tổng quan về Smart Pointers trong C++

Sử dụng Iterators trong STL của C++

Sử dụng Iterators trong STL của C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng trong List trong C++

[Iterator] Sử dụng trong List trong C++

[STL] Sử dụng Vector trong C++

[STL] Sử dụng Vector trong C++

Tổng quan về Iterators trong C++

Tổng quan về Iterators trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

Top