统计字符个数

来源:互联网 发布:美国大数据战略 编辑:程序博客网 时间:2024/04/30 11:02

#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void UptoDown(char *str);
void sort(char *str);
typedef struct countchar
{
    char ch;
    int count;
   
}cc;
void main()
{
    cc myc[40];
    FILE *pt;
    char str[100];
   
    if(NULL==(pt=fopen("D://input.txt","r")))
    {
        cout<<"Can't open file"<<endl;
        exit(0);
    }
    else
    {
        fscanf(pt,"%s",str);
        fclose(pt);
    }
    UptoDown(str);
    sort(str);
    int j=0,m=0,count;
    for(int i=0;i<strlen(str);i++)
    {
        myc[m].ch=str[i];
        j=0;
        count=1;
        for(j=i+1;j<strlen(str);j++)
        {
            if(myc[m].ch==str[j])
            {
                i++;
                count++;
            }
        }
        myc[m].count=count;
        m++;
    }
    if(NULL==(pt=fopen("D://output.txt","w")))
    {
        cout<<"Can't open file"<<endl;
        exit(0);
    }
    else
    {
        for(i=0;i<m-1;i++)
            fprintf(pt,"%c:%d/n",myc[i].ch,myc[i].count);
        fprintf(pt,"%c:%d",myc[m-1].ch,myc[m-1].count);
        fclose(pt);
    }
    cout<<strlen(str);
   
}
void UptoDown(char *str)
{
    int n=strlen(str);
    for(int i=0;i<n;i++)
    {
        if(str[i]>='A' && str[i]<='Z')
        {
            str[i]+='a'-'A';
        }
    }
}
void sort(char *str)
{
    char ch;
    int n=strlen(str);
    for(int i=0;i<n-1;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            if(str[i]>str[j])
            {
                ch=str[i];
                str[i]=str[j];
                str[j]=ch;
            }
        }
       
    }
}

原创粉丝点击