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

Đề tài: Xử lý xâu ký tự ???

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

    Mặc định Xử lý xâu ký tự ???

    Mình có 1 xâu kí tự (VD là "abc 1 2 de 3 4 f 5"). Mình muốn hỏi làm thế nào để tách các chữ số trong xâu đó ra khỏi xâu và lưu vào một mảng ???

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

    - Ý tưởng của mình như sau:
    + Mình sẽ duyệt qua từng phần tử của chuỗi str và dùng hàm isdigit() để kiểm tra xem kí tự đó có phải là chữ số 0..9 không.Nếu đúng thì lưu nó vào mảng A[] như yêu cầu...Vậy thôi!

    C Code:
    1. void getNumberInString(char *str,char A[],int &dem)
    2. {
    3.     int n = strlen(str);// do dai chuoi str
    4.    
    5.     dem = 0;//dem xem co bao nhieu chu so trong chuoi str
    6.     for(int i=0;i<n;i++)
    7.     {
    8.         if (isdigit(str[i]))
    9.         {
    10.             A[dem] = str[i];
    11.             dem++;
    12.         }
    13.     }
    14.     A[dem] = '\0';// ky tu NULL o cuoi chuoi.
    15. }
    No way, No success..

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

    Code style rất rõ ràng, very good ! hacker_mubaohiem tiến bộ rất nhanh T_T !

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

    - R_R !Thanks for your compliment.But I also continue studying from you and all members in CongdongCviet anymore!

    - Nói chung tớ cũng thấy việc hoạt động có tổ chức bài bản, nội quy như forum Cviet là môi trường tốt để rèn luyện và chia sẻ...

    - Nhân đây cũng xin cảm ơn sự chia sẻ của mọi người rất nhiều...
    No way, No success..

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

    if (isdigit(str[i])) anh ơi,dognf đk if này sao lại ko có gì hả anh,nó chẳng lớn hơn hay nhỏ hơn cái gì?vậy nó để làm gì?,A[dem] = '\0'; kí tự null là kí tự gì nhể

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

    Mặc định Xử lý xâu ký tự ???

    Trích dẫn Nguyên bản được gửi bởi coder_gate Xem bài viết
    if (isdigit(str[i])) anh ơi,dognf đk if này sao lại ko có gì hả anh,nó chẳng lớn hơn hay nhỏ hơn cái gì?vậy nó để làm gì?,A[dem] = '\0'; kí tự null là kí tự gì nhể
    Ơ đồng chí này hỏi rất là hay =)), không viết gì tức là mặc định là nó khác NULL.
    if (isdigit(str[i])) tương đưong với if (isdigit(str[i]) != NULL)
    còn ký tự NULL là ký tự gì mà không biết thì bó tay rồi .

  7. #7
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Trích dẫn Nguyên bản được gửi bởi Đoàn Dự Xem bài viết
    Ơ đồng chí này hỏi rất là hay =)), không viết gì tức là mặc định là nó khác NULL.
    if (isdigit(str[i])) tương đưong với if (isdigit(str[i]) != NULL)
    còn ký tự NULL là ký tự gì mà không biết thì bó tay rồi .
    Hì hì, hình như bác nhầm rồi: Không viết gì không có nghĩa là không có gì và càng không có nghĩa nó là NULL. Thử cái này:
    C Code:
    1.  if (isdigit(str[i]))  <==>  if (isdigit(str[i])==1)
    2. if (isdigit(!str[i])) <==>  if (isdigit(str[i])==0)

    Biểu thức điều kiện là một biểu thức logic (true, false), nó chỉ có 2 giá trị trả về đó là 0 và 1 thôi.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

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

    Em nghĩ NULL hay 0 cũng là một thứ thôi mà . Chẳng phải mã ASCII của NULL là 0 sao ?
    ttecak ?

  9. #9
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    @Dr. : Sai rồi, nhìn lại đi pa
    C++ Code:
    1. if (isdigit(!str[i])) <--- cái này error nha
    2.  
    3. // FIX
    4. if (!isdigit(str[i])) <---- tương đương if(isdigit(str[i]) == 0) <--- chú ý: đây là biểu thức Logic chứ không phải Value nha
    5. // Hàm isdigit(const char ch) trả về số nguyên dương khác 0 nếu nó là kí tự số, ngược lại trả về 0, sau đó đem giá trị đó so sánh với mệnh đề LOGIC trong toán tử IF
    6.  
    7. if (isdigit(str[i]))  <==>  if (isdigit(str[i])==1) <--- cái này sai à nha,
    8. // QUOTE: The function isdigit() returns non-zero if its argument is a digit between 0 and 9. Otherwise, zero is returned. Chưa chắc đã là 1 nha.

    @comeonbaby:
    NULL = chưa có giá trị; được locate trong bộ nhớ (memory) nhưng không chứa value nào hết.
    0 : là môt kí tự số, là một value

    Trong bảng ASCII: ở hệ DEC
    Null có giá trị 0 (0x00)
    còn '0' có giá trị 48 (0x30)

    2 cái hoàn toàn khác nhau :|
    None!

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

    Null là null còn 0 là 0 ^^!
    Cái này có rất nhiều nhầm lẫn ^^!Không chỉ trong trường hợp với số như thế này ^^!
    Sai lầm dễ mắc phải nhất với null là khi xử lý string.Mọi người hay mắc phải nhất là quan niệm một string null giống với ""(string rỗng).

    Còn tại sao nó khác nhau có lẽ X giải thích chuẩn rồi ^^!
    Is the moon rising...

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