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

Đề tài: Đếm từ trong xâu trên C, giúp mình sửa lỗi với?

  1. #1
    No Avatar
    Mr.Kjng Khách

    Mặc định Đếm từ trong xâu trên C, giúp mình sửa lỗi với?

    Các anh sửa giùm em code bài đếm từ với.Sao em làm nó không chạy được
    Đề bài:Nhập vào một xâu . Sau đó đếm xem trong xâu có bao nhiêu từ
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4. #include <ctype.h>
    5.  
    6. void nhap(char st[])
    7. {
    8.     printf(" Nhap xau:");
    9.     gets(st);
    10. }
    11.  
    12. void demtu(char st[])
    13. {
    14.     char ch[]=" ";
    15.     int i,d;
    16.     strcat(ch,st);
    17.     d=0;
    18.     for (i=0;i<strlen(ch);i++)
    19.         if (ch[i]==' ' && ch[i+1]!=' ') d++;
    20.     printf(" Trong xau co %d tu",d);
    21. }
    22.  
    23. void main()
    24. {
    25.     clrscr();
    26.     char st[30];
    27.     nhap(st);
    28.     demtu(st);
    29.     getch();
    30. }
    Attached Thumbnails Attached Thumbnails untitled.JPG  

  2. #2
    Ngày gia nhập
    03 2008
    Nơi ở
    Hồ chí minh
    Bài viết
    134

    Lỗi của bạn mình tìm trên support.microsoft thì cụ thể là như sau:
    Code:
    NTVDM CPU Has Encountered an Illegal Instruction
    
    View products that this article applies to.
    Article ID : 245184
    Last Review : November 1, 2006
    Revision : 1.1
    This article was previously published under Q245184
    
    SYMPTOMS
    
    When you attempt to run a 16-bit program on a computer running Microsoft Windows NT 4.0 Service Pack 3, the program may quit immediately, or you may receive the following error message:
    Hidden Console of WOW VDM
    The NTVDM CPU has encountered an illegal instruction.
    CS: 04c3 IP:3937 OP:c71c 9d 37 00
    Choose Close to terminate the application.
    When you click Close, you may receive several similar error messages.
    
    
    CAUSE
    
    This behavior can occur if you use an incorrect version of the Command.com file. For example, this issue is known to occur if you use a Command.com file included in Microsoft Windows 95, dated 7/11/95.
    
    
    RESOLUTION
    
    To resolve this issue, replace the Command.com file in the Winnt\System32 folder with the same file from another computer that is running Windows NT Workstation 4.0 or Windows NT Server 4.0, and then make sure that there are no Command.com files dated 7/11/95 on the computer. You can also replace the Command.com file on the computer with the same file on the Windows NT installation CD-ROM.
    DỊCH RA NHƯ SAU:
    Code:
    Gặp NTVDM CPU Có một bất hợp pháp Chỉ dẫn 
    Khi bạn cố gắng chạy một chương trình 16-bit, trên một máy tính chạy Microsoft Windows NT 4.0 Service Pack 3, chương trình tháng năm bỏ thuốc lá ngay lập tức, hoặc bạn có thể nhận được các thông báo lỗi sau đây: 
    Hidden Console of WOW VDM Ẩn khiển của WOW VDM 
    The NTVDM CPU has encountered an illegal instruction. Các NTVDM CPU đã gặp một bất hợp pháp hướng dẫn. 
    CS: 04c3 IP:3937 OP:c71c 9d 37 00 CS: 04c3 IP: 3937 OP: c71c 9d 37 00 
    Chọn Close để chấm dứt các ứng dụng. 
    Khi bạn bấm vào Close, bạn có thể nhận được một vài thông báo lỗi tương tự. 
    Gây ra 
    Hành vi này có thể xảy ra nếu bạn sử dụng một phiên bản không chính xác của các tập tin Command.com. Ví dụ, vấn đề này được biết là xảy ra nếu bạn sử dụng một tập tin Command.com có trong Microsoft Windows 95, ngày 7/11/95. 
    GIẢI QUYẾT 
    Để giải quyết vấn đề này, thay thế các tập tin Command.com trong Winnt \ system32 thư mục với cùng một tập tin từ một máy tính khác có nghĩa là đang chạy Windows NT Workstation 4,0 hoặc Windows NT Server 4.0, và sau đó hãy chắc chắn rằng không có tập tin Command.com ngày 7/11/95 trên máy vi tính. Bạn cũng có thể thay thế cho các thế Command.com tập tin trên máy tính với cùng một tập tin trên Windows NT, cài đặt đĩa CD-ROM.
    Còn bây giờ là cái code của bạn:Bị sai chỗ hàm đếm từ,mặc dù vẫn in ra được được sô ký tự(lý do vì sao chắc đọc ở trên thì sẽ hiểu)
    C Code:
    1. void demtu(char st[])
    2. {
    3.     char ch[]=" ";/*->>>>chỗ  này chua có cái gì trong ngoặc//thủ sửa lại char ch[30] là hết cái lỗi kia ngay*/
    4.     int i,d;
    5.     strcat(ch,st);
    6.     d=0;
    7.     for (i=0;i<strlen(ch);i++)
    8.         if (ch[i]==' ' && ch[i+1]!=' ') d++;
    9.     printf(" Trong xau co %d tu",d);
    10. }
    Thuật toán đếm từ trong một chuỗi không vất vả để bạn phải đặt thêm 1 chuỗi rồi ghép................
    Mình ra chỉ ra hai cách khá đơn giản nhưng vẫn kiểm tra tất các trưởng hợp của chuỗi(đếm không sai một từ).
    Cách 1:
    C Code:
    1. void demtu(char st[])
    2. {
    3.    
    4.     int i,d;
    5.     d=0;
    6.     if(st[0]!=' ')
    7.         d++;
    8.     for (i=0;i<strlen(st);i++)
    9.         if (st[i]==' ' && st[i+1]!=' ')
    10.             d++;
    11.     printf(" Trong xau co %d tu",d);
    12. }
    Cách 2:
    C Code:
    1. int CountWords(char *s)
    2. {
    3.     int count = 0;
    4.  
    5.     for (int i = 0; i < (int) strlen(s); i++) {
    6.         int IsWord = 0;
    7.         while (isalpha(s[i])) {
    8.             i++;
    9.             IsWord = 1;
    10.         }
    11.         if (IsWord)
    12.             count++;
    13.     }
    14.     return count;
    15. }
    Every step I'm taking
    Every move I make
    Feels lost with no direction
    My faith is shaking
    But I gotta keep trying.

  3. #3
    No Avatar
    Mr.Kjng Khách

    Cảm ơn anh.Tiện đây anh sủa em cái code này luôn nhá.E test đúng rồi nhưng mà chạy lạ không đúng.
    Đề:nhập vào một xâu sau đó nhập vào một từ.Kiểm tra xem từ đó xuất hiện trong xâu bao nhiêu lần.

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4. #include <ctype.h>
    5.  
    6. void nhap(char st[])
    7. {
    8.     printf(" Nhap xau:");
    9.     gets(st);
    10. }
    11.  
    12. void trung(char st[])
    13. {
    14.     int i,d,j,dau,cuoi,k;
    15.     char tu[30],tu1[30];
    16.     printf(" Nhap mot tu can kiem tra:");
    17.     gets(tu);
    18.     strcat(st," ");i=0;d=0;
    19.     while (i<strlen(st))
    20.     {
    21.         while (st[i]==' ')
    22.             i++;
    23.         dau=i;
    24.         while (st[i]!=' ')
    25.             i++;
    26.         cuoi=i;
    27.         k=0;
    28.         for (j=dau;j<cuoi;j++)
    29.         {
    30.             tu1[k]=st[j];
    31.             k++;
    32.         }
    33.         if (strcmp(tu,tu1)==0) d++;
    34.     }
    35.     printf(" Trong day co %d tu trung voi tu vua nhap",d);
    36. }
    37.  
    38. void main()
    39. {
    40.     clrscr();
    41.     char st[30];
    42.     nhap(st);
    43.     trung(st);
    44.     getch();
    45. }

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

  1. Học cách kinh doanh trên internet để giúp bạn thành công trong tương lai
    Gửi bởi THUHONG137 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 26-03-2013, 02:21 PM
  2. Kỹ thuật C Giúp viết hàm sửa thông tin trên từng dòng trong file txt
    Gửi bởi nguyentienlc trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 01-12-2012, 09:53 PM
  3. Bài tập C++ Giúp mình sửa lỗi vấn đề thao tác trên file trong c++
    Gửi bởi chinhphuco0oit trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 23-06-2012, 06:58 PM
  4. Cách tạo columnheader trong listview trên C#. Giúp em?
    Gửi bởi shockgun trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 13
    Bài viết cuối: 13-08-2010, 01:19 PM
  5. Các thao tác trên file trong lập trình C++. Giúp mình với?
    Gửi bởi aqrius trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 11-06-2009, 11:07 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