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ố 13 kết quả

Đề tài: viết code in ra số từ, số câu trong 1 chuỗi

  1. #1
    Ngày gia nhập
    06 2017
    Bài viết
    7

    Mặc định viết code in ra số từ, số câu trong 1 chuỗi

    chào anh chị. E mới học C nên chưa biêt nhiều lắm. hiện e có 1 bài tập như đã nêu. viết code in ra số từ , số câu, số chữ cái, số kí tự trong 1 chuỗi.
    Mong anh chị giúp đỡ. e cảm ơn

  2. #2
    Ngày gia nhập
    08 2017
    Bài viết
    716

    Khó vậy sao ?
    C Code:
    1. //hàm đếm số ký tự
    2. int strlenA( const char *s ){
    3.     int n = 0;
    4.     while ( s[n] ) ++n; // (s[n] != '\0')
    5.     return n;
    6. }
    7. ...
    8. char sChuoi[MAX];
    9. ...
    10. int nChar = strlenA(sChuoi); // đếm số ký tự
    11. ...

    tương tự :
    - đếm các ký tự (cộng 1) space thu được số từ nước ngoài (word, nhưng tiếng Việt thì bó gối)
    - đếm các ký tự dấu câu (. ! ?) thì ra số câu.

  3. #3
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    316

    Trích dẫn Nguyên bản được gửi bởi Monre Xem bài viết
    Khó vậy sao ?
    C Code:
    1. //hàm đếm số ký tự
    2. int strlenA( const char *s ){
    3.     int n = 0;
    4.     while ( s[n] ) ++n; // (s[n] != '\0')
    5.     return n;
    6. }
    7. ...
    8. char sChuoi[MAX];
    9. ...
    10. int nChar = strlenA(sChuoi); // đếm số ký tự
    11. ...

    tương tự :
    - đếm các ký tự (cộng 1) space thu được số từ nước ngoài (word, nhưng tiếng Việt thì bó gối)
    - đếm các ký tự dấu câu (. ! ?) thì ra số câu.
    Đếm từ bằng cách đếm space là không chính xác, lỡ có nhiều space nằm liên tục thì sao

  4. #4
    Ngày gia nhập
    08 2017
    Bài viết
    716

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    Đếm từ bằng cách đếm space là không chính xác, lỡ có nhiều space nằm liên tục thì sao
    Ừ héng !
    Đếm dấu câu cũng sai nốt khi gặp dấu 3 chấm (...)
    Và sai tuột khi chuỗi không đúng văn phạm, ngữ nghĩa và có lỗi chính tả, vv và vv

    Vấn đề này rất khó. Khó cỡ vậy sao ?!

  5. #5
    Ngày gia nhập
    08 2017
    Bài viết
    716

    Nếu định hướng xuat khau LD, outsourcing, ve vao viec tao, ap te be, mo bi phong hay ra di uberX / grabY thì ta cung tien toi lam muon

    nTok.cpp file:
    C Code:
    1. #include <string.h>
    2. #include <stdio.h>
    3.  
    4. int countWord(char * str){
    5.     int id = 0;
    6.     const char s[2] = " ";
    7.     char *token;
    8.     /* lấy token đầu tiên */
    9.     token = strtok(str, s);
    10.     /* duyệt qua các token kế tiếp */
    11.     puts("parse tokens :");
    12.     while( token != NULL ) {
    13.         id++;
    14.         printf("%4d : %s\n", id, token );
    15.         token = strtok(NULL, s);
    16.     }
    17.     return id;
    18. }
    19. int main(){
    20.     char str[200] = //"Chao anh chi. E moi hoc C nen     chua biet nhieu lam. hien e co 1 bai tap nhu da neu... e cam     on.";
    21.         "Mot lan khong chin, chin lan    khong nen. \n\
    22. Mot lan cho chin hon chin muoi       lan. \n\
    23. \n\
    24. Nuoc Viet Nam     la mot(1), dan toc Viet Nam la   mot(1). \n\
    25. (tư dien Han Nom) Mot  mat, mot con.";
    26.     puts("Input str :");
    27.     //gets(str);
    28.     puts(str);
    29.    
    30.     //doNorm(str); chuẩn hóa nếu cần thiết
    31.    
    32.     int nChr = strlen(str);
    33.     printf("\n\nstr has %d (chars).\n\n", nChr);
    34.    
    35.     int nW = countWord(str);
    36.     printf("\nand it has %d (words).", nW);
    37.    
    38.     // int nStx = countSentence(str);  
    39.    
    40.     return(0);
    41. }

    nTok.exe run :


    Chán với nen dao duc u me lac hau, day & hoc voi cong nghe bon cham khong dau tieng vet.

  6. #6
    Ngày gia nhập
    08 2017
    Bài viết
    716

    Mặc định viết code in ra số từ, số câu trong 1 chuỗi

    Không ý kiến, yêu cầu chi à ?

    Viết dùng char, ANSI chuẩn.
    C Code:
    1. int main(){
    2.     char str[200] = "Mot lan khong chin, chin lan    khong nen. \n\
    3. Mot lan cho chin hon chin muoi       lan. \n\
    4. \n\
    5. Nuoc Viet Nam     la mot(1), dan toc Viet Nam la   mot(1). \n\
    6. (tư dien Han Nom) Mot  mat, mot con.";
    7.  
    8.     puts("Input str :");
    9.     //gets(str);
    10.     puts(str);
    11. ...
    12. }

    dùng escape \ để nhập chuỗi dài, chứa ký tự xuống dòng \n, gồm nhiều dòng (chỉ dùng trong code).

    Rảnh thì
    - viết các hàm còn thiếu
    - chuyển sang wchar_t utf8, unicode

  7. #7
    Ngày gia nhập
    08 2017
    Bài viết
    716

    Từ (word) thường được hiểu là những ký tự liền nhau, không chứa white space char (ws : space bar ' ', \t, \n, ...); các word phân cách với nhau bởi ws.

    Tiếng Việt, từ có thể có nhiều âm tiết (từ láy, từ ghép, từ Hán-Việt, từ nhập khẩu, ...) các âm tiết viết tách nhau, không dính liền như NN English, Français, ...

    Đây là trường hợp dễ nhầm lẫn trong lập trình.

  8. #8
    Ngày gia nhập
    08 2017
    Bài viết
    716

    Có sự bất thường, lịch làm việc của tôi bị đảo lộn.

    Tôi thường cho rằng bản thân không dốt tiếng Việt. Tôi thường làm việc đến tầng thấp, có va chạm tới ký tự, từ và câu.
    Tôi tham khảo kỹ lưỡng, hỏi ý kiến nhiều người và đã dùng trong nhiều năm : tiếng Việt có 29 chữ cái.

    Mới đây có ông Bùi Hiền, giỏi hơn tôi, ổng phán : tiếng Việt có 38 chữ cái.

    PGS-TS Bùi Hiền cho biết: “Đề xuất của tôi có nhiều nhà ngôn ngữ họ thấy hợp lý vì chữ viết mới có một nguyên tắc thống nhất. Nhưng cũng có nhiều ý kiến phản bác vì cho rằng nếu cải tiến vậy sẽ phức tạp, có nhiều hệ lụy. Ví dụ kho tư liệu đồ sộ cũ chuyển sang chữ viết mới thì sẽ xử lý như thế nào. Và để thay đổi sẽ phải mất rất nhiều thời gian: thay đổi nhận thức, thay đổi cách học, cách dạy, sách giáo khoa cũng phải thay đổi, các văn bản, sách, báo, rồi lập trình chữ viết trên máy tính… Phải thay đổi từng bước một. Nhưng chỉ cần mất 1-2 năm là quen dần”.
    Bù lại, theo PGS Hiền, cải tiến theo cách này sẽ thống nhất được chữ viết cho cả nước, loại bỏ được hầu hết các thiếu sót, bất cập không nhất quán trước đây gây khó khăn cho người dùng (dẫn mắc lỗi chính tả), giản tiện được bộ chữ cái khi từ 38 chữ cái chỉ còn 31, dễ nắm được quy tắc, dễ nhớ. Ngoài ra, còn tiết kiệm được thời gian, công sức, vật tư trong quá trình tạo lập các văn bản trên giấy, trên máy tính.
    Khi 'Tiếng Việt' được viết thành 'Tiếq Việt'

    Vậy xin lỗi các bạn, các đoạn code tôi viết là không tin cậy.

    Nghe thông cáo báo chí
    .. triển khai thí điểm cải tiến “Tiếq Việt” vào chương trình ĐH

    Có bạn nào là Gv, là Sv trường ĐH HUTECH vui lòng cho biết : tôi sai chỗ nào. năm sau cũng được.

  9. #9
    Ngày gia nhập
    06 2017
    Bài viết
    7

    em cảm ơn sự giúp đỡ của các anh ạ

  10. #10
    Ngày gia nhập
    08 2017
    Bài viết
    716

    Tôi không lấy cám, biết làm gì với nó ?
    Tôi cũng không muốn giúp đỡ riêng cho cá nhân bạn.

    Nếu bạn hiểu thì nên viết ra mã NNLT:
    - người khác có thể hiệu chỉnh cho code đó tốt hơn
    - người khác có thể tham khảo, học hỏi khi họ gặp trường hợp như bạn.

Tags của đề tài này

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