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

Đề tài: biên dịch không báo lỗi nhưng khi chạy ct thì bị lỗi, anh/chị nào giúp em với!!

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

    Mặc định biên dịch không báo lỗi nhưng khi chạy ct thì bị lỗi, anh/chị nào giúp em với!!

    mục đích của bài này là: Nhập một chuỗi, cắt các khoảng trắng thừa và in hoa ký tự đầu của mỗi từ
    Ví dụ: nhập chuỗi: nGuyen vAN KhoE
    chuỗi xuất: Nguyen Van Khoe
    Chương trình này khi test không báo lỗi, hàm xoatrang đúng rồi, con khi em viết thêm hàm dautu thì lại bị lỗi
    các anh/chị này giúp chỉ ra lỗi dùm em nhé, cảm ơn các anh/chị trước nha...


    Code:
    #include <stdio.h>
    #include <string.h>
    #include <conio.h>
    
    
    void xoatrang(char s[])
    {
       char st[125];
       strcpy(st,s);
       char *vt;
    
       while (vt = strstr(st,"  "))
         memmove(vt, vt+1, strlen(st) - (vt - st));
       if (st[0] == ' ')
         memmove(vt, st+1, strlen(st)-1);
       
       if (st[strlen(st)-1]== ' ')
         st[strlen(st)-1]=0;
       strcpy(s,st);
     }
    
    void dautu(char s[])
    {
    	strlwr(s);
    		s[0]=s[0]-32;
    	for(int i=1;i<int(strlen(s)-1);i++)
    		if(s[i]==' ')
    			s[i+1]=s[i+1]-32;
    	}
    
    void main()
    {
       char s[125];
       printf("\nNhap chuoi: ");
       gets(s);
       xoatrang(s);
       dautu(s);
       printf("\nChuoi sau khi da xoa : ");
       puts(s);
       getch();
    }

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình chạy thử rồi, ko thấy lỗi gì hết.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    Mình Thấy Có Lỗi Gì đâu Ok Mà

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

    các anh/chị thử nhập vào một chuỗi mà phía trước chuỗi có số khoảng trắng là số lẻ 3,5,7 ,......, hoặc chuỗi có các ký tự in hoa hoặc in thường lẫn lộn dùm em xem sao!
    em không hiểu đoạn code này: vt = strstr(st," ")) vậy vt giữ giá trị là gì?
    memmove(vt, vt+1, strlen(st) - (vt - st)); vt-st là gì, giá trị lúc này là bao nhiêu?
    if (st[0] == ' ')
    memmove(vt, st+1, strlen(st)-1); st+1 là gì (một ở đây có ý gì vậy)
    em nhờ các anh giải thích dùm em nhé....

  5. #5
    Ngày gia nhập
    03 2009
    Nơi ở
    Tứ xứ trên đất sài thành
    Bài viết
    60

    mình chẳng thấy có lỗi gì hết chạy ngoan lành mà

    Càng Học Càng Ngu!!!Kiến thức thì vô tận con người thì vô biên thời gian thì vô đối????...

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

    Mặc định biên dịch không báo lỗi nhưng khi chạy ct thì bị lỗi, anh/chị nào giúp em với!!

    Đúng là có lỗi đó thật các bạn ạ, mình đã check rồi. Nhưng mà mình không biết cái hàm memmove là gì nên không tiện sửa cho bạn. Vậy thì bạn thử thay cái hàm xoatrang của bạn bởi cái hàm xoa_trang() của mình xem sao (cái này trước đây làm thử không biết bài này có đúng không)

    C Code:
    1. void xoa_trang(char* &a)
    2. {
    3.     for(int i=0;i<strlen(a);i++)
    4.     {
    5.         if(a[0]==' ')
    6.         {
    7.             strcpy(a,a+1);
    8.             i--;
    9.         }
    10.         if(a[i]==' '&&a[i+1]==' ')
    11.         {
    12.             strcpy(a+i+1,a+i+2);
    13.             i--;
    14.         }
    15.     }
    16.     if(a[strlen(a)-1]==' ') a[strlen(a)-1]=0;
    17. }

    Có lỗi gì thì PM nha, mình sẽ khắc phục.

  7. #7
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Lỗi nằm ở dòng while đầu tiên trong hàm xoatrang :

    C Code:
    1. while (vt = strstr(st,"  "))  // bạn dùng tới 2 khoảng trắng

    Sửa lại :

    C Code:
    1. while (vt = strstr(st," "))  // dùng 1 khoảng trắng
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    chán quá hu hu

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

    nếu dùng một khoảng trắng như anh nói thì giữa 2 từ (chữ) sẽ không còn cách nhau một khoảng trắng nữa rồi. Mà nó sẽ xóa tất cả các khoảng trắng có trong chuỗi.

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

    Cứ bê nguyên cái hàm của mình vào mà chạy xem có chạy như gió không

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

  1. Công cụ lập trình C Dev C biên dịch chậm trên Win 7 là do đâu?
    Gửi bởi samchan.ict trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 8
    Bài viết cuối: 16-05-2013, 10:18 AM
  2. không chạy đc file jar sau khi biên dịch
    Gửi bởi allvalk trong diễn đàn Nhập môn lập trình Java
    Trả lời: 1
    Bài viết cuối: 29-10-2012, 01:51 PM
  3. Biên dịch chạy tốt, chạy file .exe trong Debug lỗi
    Gửi bởi conrongchautien trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 19-04-2012, 11:03 AM
  4. Thủ thuật C++ Chạy đua với trình biên dịch
    Gửi bởi lttq trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 06-09-2011, 11:03 AM
  5. biên dịch có điều kiện ? giúp em
    Gửi bởi ngonchanloi89 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 03-04-2010, 04:21 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