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

Đề tài: Tìm số từ trong chuỗi bằng hàm

  1. #1
    Ngày gia nhập
    03 2008
    Nơi ở
    Nhà tù
    Bài viết
    37

    Mặc định Tìm số từ trong chuỗi bằng hàm

    Đây là bài toán tìm số từ trong một chuỗi

    Code:
    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    
    
    void main()
    {
    char chuoi[30];
    int i,d=1;
    clrscr();
    printf ("Nhap vao mot chuoi:");
    gets(chuoi);
    
    for(i=0;i<strlen(chuoi);i++)
    {
    if(chuoi[i]==' ')
    d++;
    
    }
    printf("Vay so tu trong chuoi la:%d",d);
    getch();
    }
    Vậy các anh có thể chỉ cho em cách làm bài toán này bằng hàm không.Em dở về hàm lắm.Cám ơn nhiều!

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

    Cách làm của cậu cũng khá sáng tạo T_T, người ta đếm chuỗi còn cậu thì đếm khoảng trắng , but it work.
    Hàm thì nó là 1 cái gì đó dùng để thực hiện nhiệm vụ nào đó mà thôi. Nếu giải thích hết thì dài dòng lắm, tui sữa lại cách dùng hàm rùi cậu chịu khó đọc sách lại nhé.
    C++ Code:
    1. int dem_so_tu(char* chuoi);
    2.  
    3. int main(){
    4.   char chuoi[30];
    5.   printf ("Nhap vao mot chuoi:");
    6.   gets(chuoi);
    7.   int so_tu = dem_so_tu(chuoi);
    8.   printf("%d", so_tu);
    9.  
    10.   return 0;
    11. }
    12.  
    13. int dem_so_tu(char* chuoi){
    14.   int count = 0;
    15.   for(int x=0; x < strlen(chuoi); ++x)
    16.   {
    17.     if(chuoi[x] == ' ')
    18.     count++;
    19.   }
    20.   count++;//cậu thiếu từ cuối rùi
    21.   return count;
    22. }
    Còn đây là cách ngược lại, cậu thích thì tham khảo
    C Code:
    1. #include <cstdio>
    2. #include <cstring>
    3. #include <cctype>
    4.  
    5. int dem_so_tu(const char* chuoi);
    6.  
    7. int main(){
    8.   char chuoi[30];
    9.   printf ("Nhap vao mot chuoi:");
    10.   gets(chuoi);
    11.   int so_tu = dem_so_tu(chuoi);
    12.   printf("%d", so_tu);
    13.  
    14.   return 0;
    15. }
    16.  
    17. int dem_so_tu(const char* chuoi){
    18.   int count = 0;
    19.   while(*chuoi != '\0'){
    20.     while(isspace(*chuoi))
    21.       ++chuoi;
    22.     if(*chuoi != '\0'){
    23.       count++;
    24.       while(!isspace(*chuoi) && *chuoi != '\0')
    25.       ++chuoi;
    26.     }
    27.   }
    28.   return count;
    29. }

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    Mình nghĩ nên thêm 1 hàm chuẩn hóa xâu nữa.Tức là tránh việc đếm sai do nhập nhiều hơn 1 dấu cách liên tiếp ấy.Đây là hàm cơ bản trong xử lý xâu chắc bạn cũng tự viết được.hii

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

    Cũng tùy bài mà phân ra các hàm con.
    Nếu gặp bài đơn giản như trên thì làm hàm con có khi...dài hơn.
    Dùng hàm con bạn hiểu nôm na là phân ra từng công việc cụ thể.
    Vd bài in ra các số nguyên tố bé hơn n nhập từ bàn phím.
    Nếu viết luôn trên hàm main thì sẽ rất khó nhìn,khó sửa lỗi,cho nên bài này ta phân ra thành 2 công đoạn:
    1-hàm con kiểm tra 1 số a có phải là số nguyên tố không(int kiemtrasonguyento(int a),nếu có thì return1,không thì return 0
    2-viết hàm inra(int n),dùng vòng lặp kiểm tra nếu kiemtrasonguyento(i)==1 thì in ra

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

  1. Lập trình C Thay thế chuỗi s1 trong chuỗi s bằng chuỗi s
    Gửi bởi duytue trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 23-09-2011, 04:16 PM
  2. thay thế chuỗi con thứ i trong chuỗi mẹ bằng 1 chuỗi khác
    Gửi bởi nhat1811 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 06-08-2011, 08:25 AM
  3. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM
  4. Trả lời: 7
    Bài viết cuối: 21-03-2011, 09:59 PM
  5. xem một từ trong chuỗi là một chuỗi con, sắp xếp các chuỗi con theo thứ tự tăng dần
    Gửi bởi qpkdct1101 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 20-01-2011, 08:22 AM

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