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

Đề tài: Code xóa khoảng trắng thừa trong chuỗi, nhờ các anh/chị giải thích dùm với.

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

    Wink Code xóa khoảng trắng thừa trong chuỗi, nhờ các anh/chị giải thích dùm với.

    mấy ngày nay nghiên cứu đoạn code này mà sao không hiểu được cách hoạt động của nó.
    Thứ nhất: Theo em hiểu, p là con trỏ nó sẽ giữ địa chỉ của một biến
    vậy câu lệnh: while (p=strstr(chuoi," ") là kiểm tra vị trí xuất hiện của 2 khoảng trắng trong chuoi, lúc này p đang giữ cái gì vì trong chuoi sẽ xuất hiện nhiều chỗ có 2 khoảng trắng.
    Thứ hai: Đoạn code p-chuoi phải hiểu thế nào vì theo em hiểu p,chuoi là con trỏ làm sau trừ với nhau được, nếu được kết quả là gì?


    em xin các anh chị giải thích thật chi tiết dùm em nhé, vì em đang trong thời kỳ học hỏi. Thank

    Code:
    char *xoatrang(char *chuoi)
    {
       char *p;
       while (p = strstr(chuoi, "  "))
         memmove(p, p+1, strlen(chuoi) - (p - chuoi));
       if (chuoi[0] == ' ')
         memmove(chuoi, chuoi+1, strlen(chuoi) - 1);
       if (chuoi[strlen(chuoi)-1] == ' ')
         chuoi[strlen(chuoi)-1] = 0;
       return chuoi;
    
    }
    Đã được chỉnh sửa lần cuối bởi bethaophuong2004 : 26-03-2009 lúc 09:24 AM.

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

    Dr có thể giúp bạn một chút, nhưng mà hãy cố gắng để tiêu đề liên quan đến bài viết.

    1. Nếu như trong chuỗi xuất hiện 2 hoặc nhiều hơn ký tự space (khoảng trắng) liền nhau thì kết quả của hàm strstr(chuoi, " ") sẽ trả về địa chỉ của ký tự space đầu trong 2 ký tự space liền nhau đó. Nếu không có 2 ký tự trắng liền nhau thì sẽ trả về NULL

    2. Mỗi ký tự được chứa trong một byte, vì thế ký tự tiếp theo sẽ sẽ có địa chỉ bằng địa chỉ ký tự trước + 1, vì thế kết quả của p-chuoi là độ dài tính bằng ký tự (hoặc byte) từ đầu chuỗi đến vị trí xuất hiện 2 ký tự space liền nhau.

    Dr không có đủ thời gian giải thích hoạt động của chương trình này cho bạn, nhưng hi vọng giúp được bạn.
    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!

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

    Em rất cảm ơn Dr, em thấy trong đầu có được cái gì đó sau khi nghe Dr giải thích, em nghiên cứu chút nữa sẽ rõ thôi, Mến Chào Dr nhé!
    Cho em hỏi một chút: Sau khi gởi bài viết, đến khi đã hiểu em muốn gỡ bài viết của mình xuống thì phải làm sao? em có được phép không?
    Đã được chỉnh sửa lần cuối bởi bethaophuong2004 : 27-03-2009 lúc 07:56 AM.

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

    Cái này thì không làm được đâu bạn ạ, chỉ có Mod mới được phép làm chuyện đó thôi.

  5. #5
    Ngày gia nhập
    08 2009
    Nơi ở
    Hưng Yên
    Bài viết
    17

    ai có thể up code đầy đủ của bài này được không????

  6. #6
    Ngày gia nhập
    08 2009
    Nơi ở
    Hưng Yên
    Bài viết
    17

    Mặc định Code xóa khoảng trắng thừa trong chuỗi, nhờ các anh/chị giải thích dùm với.

    nghic mãi mới ra mấy dòng code này:
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    #include <iomanip>
    #include <malloc.h>
    #include <string.h>

    void standardString(char *){
        
    char *tokenpTr;
        
    char *temp_name[10];
        
    tokenpTr strtok(p," ");
        
    int i 0;
        while(
    tokenpTr!= NULL){
            
    temp_name[i] = (char*)malloc(50*sizeof(char));
            
    strcpy(temp_name[i], tokenpTr);
            
    tokenpTr=strtok(NULL," ");
            
    i++;    
        }
        
        
        
    char *charResult;
        
    charResult = (char*)malloc(20*sizeof(char));
        
    strcpy(charResult,"");
        for(
    int j0jij++ )
            
    strcat(charResult,strcat(temp_name[j]," "));

        
    strcpypcharResult );
        
    free(charResult);    
    }


    int main(){
        
    char *= (char*)malloc(40*sizeof(char) );
        
    printf("\nNhap chuoi cua ban: ");
        
    gets(p);
        
    standardString(p);
        
    printf("\nChuoi cua chung toi: %s");
        
    getch();
        return 
    0;


  7. #7
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Visual C++ Code:
    1. /*
    2.  * Remove all occurances of a character in a string
    3.  */
    4. LPSTR StrRemoveChar(LPSTR lpszSrc, char ch)
    5. {
    6.     char c;
    7.  
    8.     LPSTR lpInc = lpszSrc;
    9.     LPSTR lpStore = lpszSrc;
    10.  
    11.     while ((c = *lpInc) != '\0') {
    12.         if (c != ch)
    13.             *lpStore++ = c;
    14.         lpInc++;
    15.     }
    16.  
    17.     *lpStore = '\0';
    18.  
    19.     return lpszSrc;
    20. }
    LPSTR = char *

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

  1. Bài tập C Xóa khoảng trắng thừa trong chuỗi
    Gửi bởi nevermorehack trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 12-09-2013, 06:47 PM
  2. Xóa khoảng trắng trong chuỗi bị lỗi ko chạy!lập trình C++
    Gửi bởi teppei14 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 3
    Bài viết cuối: 29-12-2011, 11:01 PM
  3. Xóa bỏ khoảng trắng trong chuỗi
    Gửi bởi boy_popping trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 9
    Bài viết cuối: 22-07-2010, 03:56 PM
  4. Bài tập C Xóa khoảng trắng thừa trong chuỗi
    Gửi bởi lobotk1 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 03-05-2010, 07:45 PM
  5. Xóa khoảng trắng trong chuỗi với lập trình C#
    Gửi bởi hieudiep trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 11
    Bài viết cuối: 18-10-2009, 03:58 PM

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