Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Bài tập xâu chuỗi

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    2

    Mặc định Bài tập xâu chuỗi

    Các bạn giúp mình bài tập sau
    - in ra một xâu và kiểm tra xem đó có phải là xâu đối xứng không?
    - Nhập vào một xâu và in ra xâu đảo
    Mong các bạn giúp mình

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Bạn tham khảo code này nhé

    C Code:
    1. int CheckSymmetric(char st[]) // kiểm tra tình đối xứng
    2. {
    3.     int n = strlen(st);
    4.     int tmp = 1,i;
    5.     for (i=0; i<n/2; i++)
    6.     {
    7.         tmp = tmp & (st[i]==st[n-i-1]);
    8.         if (!tmp) return 0;
    9.     }
    10.     return 1;
    11. }
    12.  
    13. char* DaoChuoi(char st[]) // Đảo chuỗi
    14. {
    15.     int n = strlen(st), i;
    16.     char _st[100];
    17.     strcpy(_st,st);
    18.     for (i=0; i<n/2; i++)
    19.     {
    20.         char tmp = _st[i];
    21.         _st[i] = _st[n-i-1];
    22.         _st[n-i-1] = tmp;
    23.     }
    24.     return _st;
    25. }

  3. #3
    Ngày gia nhập
    02 2009
    Bài viết
    56

    anh quang hoang ơi anh giải thích dùm em cái code trên em đọc mà ko hiểu tại sao lại có cái hội bit nữa ,thông cảm em mới học c

  4. #4
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    @QuangHoang: Hàm của bạn return bao nhiêu lần vậy, Mình không hiểu chổ này.

  5. #5
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    anh quang hoang ơi anh giải thích dùm em cái code trên em đọc mà ko hiểu tại sao lại có cái hội bit nữa ,thông cảm em mới học c
    Cái đó rất hay đấy tuy hơi khó hiểu chút
    tmp ban đầu gán bằng 1 tức là true
    tmp = tmp & (st[i]==st[n-i-1]);
    Phép & của tmp với (st[i]==st[n-i-1]) nếu nó đúng thì tmp vẫn true nếu nó sai thì tmp = 0 tức false
    Thực ra bài đó nguyên của nó là như này:
    Code:
    int CheckSymmetric(char st[]) // kiểm tra tình đối xứng
    {
        int n = strlen(st);
        int tmp = 1,i;
        for (i=0; i<n/2; i++)
            tmp = tmp & (st[i]==st[n-i-1]);
        return tmp;
    }

    @QuangHoang: Hàm của bạn return bao nhiêu lần vậy, Mình không hiểu chổ này.
    Cứ return là kết thúc hàm quay về ham gọi nó. Khi nào mình kiểm tra có kq rồi thì sử dụng return, trong hàm không hạn chế số lượng return, tuy nhiên nếu nhiều return thường là return có điều kiện, nếu không điều kiện thì các lệnh sau return không có ý nghĩa gì.

  6. #6
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Mặc định Bài tập xâu chuỗi

    Chưa viết xong thì rớt mạng khổ.
    Code:
      for (i=0; i<n/2; i++)
        {
            tmp = tmp & (st[i]==st[n-i-1]);
            if (!tmp) return 0;
        }
    @quanghoang sao bạn lại dùng !tmp vậy mình thấy bạn phảt dùng tmp mới dúng chứ.
    Đã được chỉnh sửa lần cuối bởi trungkien45 : 31-03-2009 lúc 12:21 AM.

  7. #7
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Đoạn code này có nghĩa là khi nào tmp==0 thì return 0, tức là cứ khi nào mà tmp==0 (lần đầu tiên) thì kết thúc hàm với giá trị trả về là 0.

  8. #8
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Mình hiểu rối! Cảm ơn bạn.

  9. #9
    Ngày gia nhập
    03 2009
    Bài viết
    2

    Cảm ơn các bạn nhé. Mình hiểu thuật toán rồi. Mình thử viết lại đã . Có gì không hiểu sẽ hơi sau.

Các đề tài tương tự

  1. Bài tập C++ Cách để so sánh 2 chuỗi kí tự giữa chuỗi nhập từ phím và chuỗi từ file xem có giống nhau không?
    Gửi bởi davilson18 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 09-06-2012, 09:47 AM
  2. Lập trình C Thay thế chuỗi s1 trong chuỗi s bằng chuỗi s
    Gửi bởi duytue trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 23-09-2011, 04:16 PM
  3. thay thế chuỗi con thứ i trong chuỗi mẹ bằng 1 chuỗi khác
    Gửi bởi nhat1811 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 06-08-2011, 08:25 AM
  4. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM
  5. xem một từ trong chuỗi là một chuỗi con, sắp xếp các chuỗi con theo thứ tự tăng dần
    Gửi bởi qpkdct1101 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 20-01-2011, 08:22 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn