Từ 1 tới 6 trên tổng số 6 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
    4

    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
    160

    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
    307

    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
    160

    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
    160

    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
    160

    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

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