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

Đề tài: Bài toán đếm số từ trong chuỗi

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

    Mặc định Bài toán đếm số từ trong chuỗi

    mình có bài tập C này chưa biết giải ntn cả ạn nà giúp mình với (mình dùng dev c 4.9)


    4. Viết chương trình nhập vào một chuỗi ký tự. Đếm số từ có trong chuỗi đó (mỗi từ cách nhau bởi dấu cách)

  2. #2
    Ngày gia nhập
    05 2012
    Bài viết
    89

    Trích dẫn Nguyên bản được gửi bởi Blaugrana Xem bài viết
    mình có bài tập C này chưa biết giải ntn cả ạn nà giúp mình với (mình dùng dev c 4.9)


    4. Viết chương trình nhập vào một chuỗi ký tự. Đếm số từ có trong chuỗi đó (mỗi từ cách nhau bởi dấu cách)
    Nếu các từ mà chỉ cách nhau bởi dấu cách (chứ không phải khoảng trắng) thì bạn quy về đếm số dấu cách là xong mà.
    Đã được chỉnh sửa lần cuối bởi SuperUser : 21-11-2012 lúc 12:34 PM.

  3. #3
    Ngày gia nhập
    11 2012
    Bài viết
    136

    nếu là dấu cách thì bạn chuẩn hóa xâu chỉ có dấu cách giữa các từ, không có cách đầu đuôi khi đó số từ bằng số dấu cách +1
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

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

    Mình code được như thế này nhưng không biết sai ở đâu bạn nào bảo mình vs @@
    Code:
    #include <conio.h>
    #include<stdio.h>
    #include<string.h>
    
    main()
    {
        char n[1000];
        int dem=0, a;
        printf("Nhap chuoi:\n\t");
        gets(n, 100, stdin);
        a = strlen(str);
        for (int i=0; i<a; i++ )
        {
            if (str[i] != ' ' && str[i] != '\t')
                if (str[i++] == ' ' || str[i++] == '\t' || str[i++] == NULL)
                    dem++;
        }
        printf("So tu cua chuoi la  %d tu.\n\n", dem);
        getch();
    }

  5. #5
    Ngày gia nhập
    11 2012
    Bài viết
    136

    bạn sai str chưa khai báo, hàm gets sai cú phápp của nó phải là char * gets ( char * str ); ,str[i++] == NULL không là con trỏ nên không đặt NULL được nếu bạn muốn là kí tự kết thúc thì str[i++] == '\0';. Thuật toán thì mình không hiểu ý đồ của bạn nhập cả dấu tap vào là gì.
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

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

    Mặc định Bài toán đếm số từ trong chuỗi

    Mình sửa lại ntn rồi mà vẫn chưa được bạn ạ
    Code:
    #include <conio.h>
    #include<stdio.h>
    #include<string.h>
    
    main()
    {
        char n[1000];
        int dem=0, a;
        printf("Nhap chuoi: ");
        gets(n);
        a = strlen(n);
        for (int i=0; i<a; i++ )
        {
            if (n[i] != ' ' && n[i] != '\t')
                if (n[i++] == ' ' || n[i++] == '\t' || n[i++] == '\0')
                    dem++;
        }
        printf("So tu cua chuoi la  %d tu.\n\n", dem);
        getch();
    }
    số từ đếm của mình vẫn toàn 0 thôi, bạn sửa chi tiết giúp mình với

  7. #7
    Ngày gia nhập
    02 2010
    Bài viết
    113

    haizz!!! trên kia mọi người đã nói rồi mà!!!
    C Code:
    1. int demtu(char str[])
    2. {
    3.     int i,dem=0;
    4.     for(i=0;i<strlen(str);i++)
    5.         if(str[i]==' '&&str[i+1]!=' '&&str[i+1]!='\0')
    6.             dem++;
    7.  
    8.         if(str[0]!=' ')
    9.             dem++;
    10.         return dem;
    11. }

  8. #8
    Ngày gia nhập
    04 2016
    Bài viết
    5

    #include<stdio.h>
    #include<conio.h>

    #include<string.h>
    int main()
    {
    char s[50];
    int dem=0 , flag=0;
    printf(" \n\n Nhap vao chuoi s: ") ;
    gets(s);
    for(int i= 0 ; i<=strlen(s); i++)
    {
    if(s[i]==' '||s[i]=='\0')
    {
    if(flag==1)
    {
    dem +=1;
    flag=0;
    }
    }
    else
    {
    flag=1;
    }
    }
    printf(" \n\n So tu co trong chuoi la: %d ",dem);
    return 0;


    }

  9. #9
    Ngày gia nhập
    01 2013
    Bài viết
    1,479

    Thực ra không nên viết những câu ntn:
    C Code:
    1. for(i=0 ; i<=strlen(s); i++)
    vì strlen() sẽ bị tính lại, mà ta biết rõ nó là hằng.

  10. #10
    Ngày gia nhập
    04 2016
    Bài viết
    5

    Code:
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <string.h>
    
    int demTu(char str[])
    {
    	int dem = 0;
    	int DoDai = strlen(str);
    
    	for (int i = 0; i < DoDai; i++)
    	{
    		if (str[i++] == ' ')
    			dem++;
    	}
    	return dem;
    }
    
    int main()
    {
    	char n[1000];
    
    	printf("Nhap chuoi: ");
    	gets(n);
    
    	int dem = demTu(n);
    	
    	printf("So tu cua chuoi la  %d tu.\n\n", dem + 1);
    	
    	return 0;
    }

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