Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 14 kết quả

Đề tài: sắp xếp các từ trong chuỗi và tìm từ có ký tự đối xứng

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

    Mặc định sắp xếp các từ trong chuỗi và tìm từ có ký tự đối xứng

    mình có hai bài tập về chuỗi mong các bạn giúp đỡ
    bài thứ nhất : nhập một chuỗi bất kí tự bất kì hãy tìm và đưa ra các từ sắp xếp theo thứ tự từ a>z
    bài thứ hai :
    nhập một chuỗi kí tự hãy tìm và đưa ra các từ viết đối xứng (ví dụ như từ thoht )
    cảm ơn mọi người nhiều!!!!

  2. #2
    Ngày gia nhập
    01 2008
    Bài viết
    4

    Ý của bài 1 của bạn là sao nhỉ? Tìm tất cả các từ trong đó và sắp xếp theo đúng không ? vậy thì bạn có thể làm thế này nhé, ở đây mình chỉ gợi ý thôi bạn phải tự code.Đầu tiên chạy vòng for rồi sử dụng độ dài của chuỗi sau đó sẽ kiểm tra bằng mã ASCII vì ta biết mỗi ký tự thực ra là 1 mã ASCII mà, đúng không nào? cứ thế ta so sánh nếu nó lớn hơn hoặc nhỏ hơn thì tiến hành gán như bình thường và copy vào 1 mảng phụ.
    Còn bài 2 thì ta cũng kiểm tra bằng vòng for nhưng nếu bạn muốn kiểm tra các từ viết đối xứng thì quy định là mỗi từ cách nhau bằng 1 space hay như thế nào thì mình mới gợi ý được chứ?

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    78

    - Thực ra theo mình ko cần phải Ascii jì cho mệt cả.Mặc dù ỳ tưởng của bạn cũng khá tốt.Làm theo sau nhé...bản chất cũng dựa vào Ascii but more simple
    + Thực ra trong ngôn ngữ lập trình C bản chất kiểu char là một kiểu số nguyên.bạn có thể so sáng kiểu char y như so sánh hai số nguyên.
    =>Mình có thể giúp cho bạn một đoạn code sắp xếp chuỗi các kí tự từ a--z nhá.Bạn tự áp dụng zô bài tập of mình:

    C Code:
    1. void sapxepchuoi(char str[])
    2. {
    3.     int n = strlen(s);
    4.     for(int i=0;i<n-1;i++)
    5.     {
    6.         for(int j=1;j<n;j++)
    7.         {
    8.             if (s[i]>s[j]) //Giong nhu sap xep so nguyen a<b<c<...<z
    9.             {
    10.                 int tmp = s[i];
    11.                 s[i] = s[j];
    12.                 s[j] = tmp;
    13.             }
    14.         }
    15.     }
    16. }
    No way, No success..

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

    cảm ơn mọi người nhiều nhưng hình như mọi người không hiểu ý của mình rồi
    với bài tập một ý của mình là đưa ra các từ mà nó sắp xếp theo thứ tự từ a>z
    ví dụ như sau :
    ta nhập vào một chuỗi :"thoi gian an lanh ";
    thì kết quả chỉ đưa ra từ "an".
    mọi người giúp đỡ mình nhá
    à nhân tiên đây ai có tai liệu về phần bài tập của c thì gửi cho mình nghe mình đang rất cần gửi vào hòm thư : khatvongtuoitrendt@gmail.com
    cảm ơn các bạn

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    ví dụ như sau :
    ta nhập vào một chuỗi :"thoi gian an lanh ";
    thì kết quả chỉ đưa ra từ "an".
    Bài này dùng C++ thì dễ, nhưng dùng C string thì cũng oải đó T_T, đặt biệt là cái đoạn run-time nhập chuỗi vào, có gì để tui suy nghĩ xem sao đã nhé T_T !
    cứ thế ta so sánh nếu nó lớn hơn hoặc nhỏ hơn thì tiến hành gán như bình thường và copy vào 1 mảng phụ.
    Ý tưởng này không được vì C string là const char*.

  6. #6
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Mặc định sắp xếp các từ trong chuỗi và tìm từ có ký tự đối xứng

    Không hẳn đâu RR ạ , mình lâu lắm rồi không làm chuỗi nhưng nghĩ vẫn có thể tiến hành gán tự nhiên như thế được :-? Ví dụ nếu ta nhập 1 ký tự thì sẽ phải là :
    C Code:
    1. scanf("%c",&a);
    Còn khi nhập 1 chuỗi thì :
    C Code:
    1. scanf("%[^\n]",&a)(a hoặc &a, not sure:D)
    Đại loại thế, mình vẫn gán bình thường mà.RR xem lại coi.
    ttecak ?

  7. #7
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Ờ, thì hồi chiều có thử rùi, nếu dùng string C++ thì rất dễ.
    Có điều bên C : ví dụ cho nhập vào 1 chuỗi :
    Code:
     "abc def tad awe"
    Đầu tiên phải tách ra các chuỗi con ?
    - abc
    - def
    - tad
    - awe.
    Giả sử có 1 mãng char* arr[]; -> nếu có tính lưu các chuỗi cắt ra vào arr[] là vô phương vì char* arr[] có tính chất const char*.
    - Vấn đề là phải store được các chuỗi con này vào 1 mãng phụ kiểu char* là dễ nhất -> nhưng cách này là không được rùi.
    - Dùng con trỏ thao tác trực tiếp thì rất cực, nói chung cái này dùng tool có sẵn như STL, hay 1 class thì quá dễ nhưng nếu chỉ dùng char* và char[] thì mệt đó .
    - Ý mình là vậy thui, không biết có đúng không có gì baby xem lại coi sao !

  8. #8
    Ngày gia nhập
    12 2007
    Bài viết
    224

    Bài 1 : cứ duyệt từng phần tử trong chuỗi , nếu a[i]<a[i+1]&&isalpha(a[i]) thì ta đi tiếp . Nếu gặp khoảng trắng ( sang từ mới ) thì thông báo rằng từ vừa xét thoả , nếu chưa gặp khoảng trắng mà đã gặp a[i]<a[i+1]||!isalpha(s[i]) thì từ đó ko thoả và ta đi đến từ mới luôn .

    Bài 2 : cũng trên ý tưởng như thế , có điều thay đổi điều kiện thành a[i]==a[n-1-i] với n là chiều dài của từ đó .

  9. #9
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    nếu a[i]<a[i+1]&&isalpha(a[i])
    Em so sánh cái gì vậy ? Kí tự hay chuỗi con ?
    Chuỗi nhập vào dạng char[] hoặc char*, làm sao xét kiểu subscript như em nói được. Làm sao em biết chuỗi nào nhỏ hơn chuỗi nào ?

  10. #10
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà Nội
    Bài viết
    138

    Tách ra từng từ một, phân biệt bởi các khoảng trống.

    1. Thuật sắp xếp thì làm theo thuật nào cũng được, sử dụng strcmp để so sánh là OK đó.
    2. Tạo ra 2 khóa, một khóa nằm ở đầu chuỗi(L_Key), một khóa nằm ở cuối chuỗi(R_key). Sau đó cho 2 khóa chạy vào trong giữa chuỗi, điều kiện là R_Key phải luôn luôn lớn hơn hoặc bằng L_Key. Kiến thức cơ bản thôi, suy nghĩ và viết code một lúc là ra liền!

    Regards!
    Tất cả các câu hỏi của thành viên (không vi phạm luật lệ tham gia) gửi vào box Java, Linux nếu không thành viên nào trả lời hỗ trợ trong vòng 24h, ban quản trị sẽ trực tiếp hỗ trợ. Các bạn giới thiệu và loan tin giúp điều này

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

  1. 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
  2. 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
  3. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM
  4. Trả lời: 7
    Bài viết cuối: 21-03-2011, 09:59 PM
  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