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 : Viết một chương trình C để hiển thị số lần xuất hiện của một ký tự nào đó trong

  1. #1
    Ngày gia nhập
    12 2007
    Bài viết
    54

    Post Bài : Viết một chương trình C để hiển thị số lần xuất hiện của một ký tự nào đó trong

    đề bài :1) Viết một chương trình C để hiển thị số lần xuất hiện của một ký tự nào đó trong một chuỗi.
    Em nghĩ mãi ko ra ai có cách nào giúp em với . (Mọi người hãy nêu ý tưởng trước khi viết khâu nhé cho em đọc dễ hiểu )
    2) Xóa kí tự trắng trong chuỗi
    Em nghĩ mãi ko ra ai có cách nào giúp em với . (Mọi người hãy nêu ý tưởng trước khi viết khâu nhé cho em đọc dễ hiểu )

    Mong mọi người giúp đỡ phần này em đọc khó hiểu quá.
    Rất mong được mọi người giúp đỡ :

    Kiến thức mình biết chỉ là hạt cát trên sa mạc

  2. #2
    Ngày gia nhập
    04 2008
    Bài viết
    336

    Bài 1/ Thay vì đếm ký tự trong chuỗi bây giờ bạn thử đếm xem có bao nhiêu số 1 trong mảng này {1,5,6,1,7,8,3,1,9}; bạn sẽ có ý tưởng để viết cho (mảng ký tự)= chuỗi
    Bài 2/ tham khảo 1 cách trong http://forums.congdongcviet.com/showthread.php?t=2556 cách đó chưa đúng lắm nhưng bạn sẽ có ý tưởng

  3. #3
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    đề bài :1) Viết một chương trình C để hiển thị số lần xuất hiện của một ký tự nào đó trong một chuỗi.
    Em nghĩ mãi ko ra ai có cách nào giúp em với . (Mọi người hãy nêu ý tưởng trước khi viết khâu nhé cho em đọc dễ hiểu )
    2) Xóa kí tự trắng trong chuỗi
    Em nghĩ mãi ko ra ai có cách nào giúp em với . (Mọi người hãy nêu ý tưởng trước khi viết khâu nhé cho em đọc dễ hiểu )

    Mong mọi người giúp đỡ phần này em đọc khó hiểu quá.
    chỉ việc cho chạy các ký tự từ đầu đến cuối,cho biến đếm là mảng các ký tự khác nhau,n ký tự thì mảng đếm có n phần tử,rồi lần lượt for lên để đếm

    xóa khoảng trắng thì nhiều cách,nhiều dạng,không biết cậu định xóa hết khoảng trắng hay xóakhoảng trắng thừa
    đây là xóa khoảng trắng thừa
    PHP Code:
    #include <stdio.h>
    #include<string.h>
    #include<conio.h>

    void xoa(char s[],int i)
    {
     
    s[i]='\0';
     
    strcat(s,s+i+1);
    }
    void xoatrang(char s[])
    {
     
    int i,n;
     
    n=strlen(s)-1;
     for(
    i=0;i<n;i++)
     {
      if((
    s[i]==' ')&& (s[i+1]==' '))
      {
      
    xoa(s,i);
      --
    i;       
      }
     }
     
    puts(s);
    }


    int main()
    {
     
    char s[50];
     
    int n;
     
    printf("Nhap xau: ");
     
    fflush(stdin);
     
    gets(s);
     
    xoatrang(s);
     
    getch();

    hoặc đây là hàm riêng

    Code:
    /* xoa nhung khoang trang thua */
    /* VD : tao   la son-> tao la son*/
    /* tra lai chuoi*/
    char *trim(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òn đây là xóa toàn bộ ký tự trắng
    Code:
    #include<iostream.h>
    #include<string.h>
    using namespace std;
    char *xoatoanbokhoangtrang(char chuoi[1000])
    {
        int n=strlen(chuoi),i;
         for(i=0;i<n;i++)
         {
             if(chuoi[i]==' ')
             {
                for(int j=i;j<n;j++)
                chuoi[j]=chuoi[j+1];
                n--;
                i--;
             }
         }
         chuoi[i]='\0';
         return chuoi;
    }
    int main()
    {
        char chuoi[1000];
        cout<<"\nNHAP CHUOI:";
        cin.getline(chuoi,1000,'\n');
        cout<<xoatoanbokhoangtrang(chuoi);
        return 0;
    }

  4. #4
    Ngày gia nhập
    12 2007
    Bài viết
    54

    Bài 1/ Thay vì đếm ký tự trong chuỗi bây giờ bạn thử đếm xem có bao nhiêu số 1 trong mảng này {1,5,6,1,7,8,3,1,9}; bạn sẽ có ý tưởng để viết cho (mảng ký tự)= chuỗi
    Mình suy nghĩ mãi rồi , bó tay . Giúp mình code với
    Rất mong được mọi người giúp đỡ :

    Kiến thức mình biết chỉ là hạt cát trên sa mạc

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

    Code:
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    
    int countx(char *s,char x)
    {
    	int i,n,dem=0;
    	n=strlen(s);
    	for(i=0;i<n;++i)
    		if(s[i]==x)dem++;
    	return dem;
    }
    
    
    void main()
    {
    	char ch,s[100];
    	clrscr();
    
    	printf("Nhap 1 chuoi: ");
    	gets(s);
    	printf("Ban muon kiem tra ky tu nao ? ");
    	ch=getche();
    	printf("\nCo %d ky tu '%c' trong chuoi vua nhap.",countx(s,ch),ch);
    	getch();
    }
    làm y chang như đếm số thôi mà :|

  6. #6
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Mặc định Bài : Viết một chương trình C để hiển thị số lần xuất hiện của một ký tự nào đó trong

    Mình suy nghĩ mãi rồi , bó tay . Giúp mình code với
    đếm ký tự nào trong chuỗi thì chỉ việc đưa ký tự đó vào và cho for chạy,nếu gặp ký tự đó thì tăng biến đếm 1 đơn vị
    sorry khi nãy mình tưởng cậu dịnh tìm tần so xuất hiện của chữ trong chuỗi nên mới viết thuật toán như thế
    Đã được chỉnh sửa lần cuối bởi AlexF : 06-08-2008 lúc 08:43 PM.

  7. #7
    Ngày gia nhập
    12 2007
    Bài viết
    54

    Trích dẫn Nguyên bản được gửi bởi 6220119 Xem bài viết
    Code:
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    
    int countx(char *s,char x)
    {
    	int i,n,dem=0;
    	n=strlen(s);
    	for(i=0;i<n;++i)
    		if(s[i]==x)dem++;
    	return dem;
    }
    
    
    void main()
    {
    	char ch,s[100];
    	clrscr();
    
    	printf("Nhap 1 chuoi: ");
    	gets(s);
    	printf("Ban muon kiem tra ky tu nao ? ");
    	ch=getche();
    	printf("\nCo %d ky tu '%c' trong chuoi vua nhap.",countx(s,ch),ch);
    	getch();
    }
    làm y chang như đếm số thôi mà :|
    Bài của bạn đúng rồi ,mình cũng đã hiểu . Nhưng có cách nào mà đếm hết kí tự trong xâu ko .
    ví dụ : sinh vien nam thu nhat
    S: xuat hien 1
    i: 2
    n: 4
    .......
    Giúp mình bài đó với
    Rất mong được mọi người giúp đỡ :

    Kiến thức mình biết chỉ là hạt cát trên sa mạc

  8. #8
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Nhưng có cách nào mà đếm hết kí tự trong xâu ko .
    Có chứ, tương tự bài của 6220119, khác một chút là bạn tạo 2 hàm:
    - Một hàm kiểm tra sự xuất hiện của kí tự ở vị trí i trong xâu, trong khoảng từ đầu xâu đến vị trí thứ i.
    - Một hàm đếm số lần xuất hiện của kí tự từ vị trí thứ i đến cuối xâu. Hàm này tương tự như trên nhưng thay kí tự x bằng vị trí i
    Bạn dùng vòng lặp kiểm tra lần lượt các kí tự trong xâu, nếu kí tự nào không xuất hiện trước đó (dùng hàm 1) thì đếm số lần xuất hiện của nó (dùng ham 2), in kết quả lên màn hình.
    Mong bạn hiểu ý tưởng của mình.
    VD:
    Xâu "121" có kết quả như sau:
    - Không có hàm thứ nhất
    * 1 xuat hien 2 lan
    * 2 xuat hien 1 lan
    * 1 xuat hien 1 lan
    - Có hàm thứ nhất
    * 1 xuat hien 2 lan
    * 2 xuat hien 1 lan

  9. #9
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Nhưng có cách nào mà đếm hết kí tự trong xâu ko
    Code:
    /* tim so lan xuat hien cua 1 so trog day so nhap tu ban phim*/
    #include <stdio.h>
    #include <conio.h>
     const int ESC =27;
    void main()
    {
    
     int a[20],b[20],c[20];
     int n,dem=0,i,x,j;
     clrscr();
    
    
     printf("nhap so hang cua day n:");
    
     scanf("%d",&n);
    
     for(i=0;i<n;i++)
     scanf("%d",&a[i]);
    
     for(i=0;i<n;i++)
     printf("%d",a[i]);
    
     for(i=0;i<n;i++)
     b[i]=c[i]=0;
    
     for(i=0;i<n;i++)
     {
      x=a[i];
      for(j=0;j<i;j++)
      if(b[j]==x) {
    	       c[j]++;
    	       break;
    	      }
      if(j==i)
      {
       b[dem]=x;
       c[dem++]++;
      }
     }
    
     for(i=0;i<dem;i++)
     printf("\ngia tri %d xuat hien %d lan\n",b[i],c[i]);
    }
    
    }
    với câu hỏi đó thì mình có đáp án cho cậu luôn

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

    Biến hóa 1 chút là ra thôi mà :|
    Code:
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    
    int countx(char *s,char x)
    {
    	int i,n,dem=0;
    	n=strlen(s);
    	for(i=0;i<n;++i)
    		if(s[i]==x)dem++;
    	return dem;
    }
    
    
    void main()
    {
    	char ch[100],s[100],type;
    	int i,dem=0;
    	clrscr();
    	strcpy(ch,"");
    
    	printf("Nhap 1 chuoi: ");
    	gets(s);
    	int	n=strlen(s);
    	type=s[0];
    	ch[0]=type;
    	ch[1]='\0';
    	printf("\nCo %d ky tu '%c' trong chuoi vua nhap.",countx(s,ch[0]),ch[0]);
    	for(i=1;i<n;++i)
    	{
    		if(type!=s[i]&&!countx(ch,s[i]))
    		{
    			dem++;
    			ch[dem]=s[i];
    			ch[dem+1]='\0';
    			type=s[i];
    			printf("\nCo %d ky tu '%c' trong chuoi vua nhap.",countx(s,ch[dem]),ch[dem]);
    		}
    	}
    	getch();
    }

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

  1. Bài tập C Viết chương trình con liệt kê tần suất xuất hiện của các ký tự chữ cái trong file text
    Gửi bởi contimmongmanh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 11
    Bài viết cuối: 19-04-2013, 11:06 PM
  2. Lập trình C Vấn đề viết hàm đọc ảnh trong C/C++ xuất ra file html
    Gửi bởi jophy tran trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 12-04-2013, 10:34 PM
  3. Bài tập C Nhập x, viết hàm chỉ ra vị trí xuất hiện x trong mảng 1 chiều
    Gửi bởi HoangCoi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 21-08-2011, 02:15 PM
  4. Bài tập C++ Viết hàm nhập, xuất mảng và tính tổng các phần tử trong mảng
    Gửi bởi viettan trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 09-01-2011, 11:32 AM
  5. tìm tần số xuất hiện của các từ viết trong C
    Gửi bởi AlexF trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 28-07-2008, 02:59 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