用C++语言处理字符串——字符频率统计
1. 基本要求:
(1) 用模块化设计思想来完成程序的设计
(2) 在VC中调试完成
用函数完成
输入一串字符,分别统计出各字符出现的频率。例如: 输入This is a pencil.  则各字符出现次数分别为:T:1, h:1,i:3,s:2,a:1, p:1 ,e:1 ,n:1,c:1,l:1。不区分大小写。例如:T 与t算做相同的字符。

解决方案 »

  1.   

    我用DELPHI和C++builder作没问题。问题是要用vc++6 作完后形成DLL然后调用。
    请会的来。
      

  2.   

    太容易了吧。
    使用一个数组 int nLetterCount[26] 记录字母的个数,
    然后循环检测就可以了啊。我会啊,提供接口就可以了。
      

  3.   

    那到不用
    这样就可以了
    输入:字符串
    输出:字符串/出现次数
    把输入赋给一个字符串
    然后作循环
    for (i = 0; i<= lenth(ss);i++)
    {
     string a = ss[i];
     for (j = 0;j<= lenth(ss);j++)
    {
     if a = ss[j] k = k+1;
     
    }
    println(ss[i]+k);
    }
    最好给出详细代码。在VC++6中调试成功.
      

  4.   

    typedef struct _KitRecord
    {
       int nChar;
       int nkitTimes;
    } tagKitRecord;CArray <tagKitRecord, const tagKitRecord&> arKitRecord;
      

  5.   

    int  nCount[26];     //每个字符出现的个数
    char szString[27];   //所有字母
    strcpy(szString,"abcdefghijklmnopqrstuvwxyz");
    char ss[265]="sdagfdfhfghfgjkytjbfjul6iuokghj";//要统计的字符串,可以让用户输入
    int i,j;
    for(i = 0;i<strlen(ss);i++)
    {
      for(j=0;j<26;j++)
      {
         if(ss[i] == szString[j] || ss[i] == szString - 'a' + 'A')
         nCount[j]++;
       }
    }
    //输出结果
    for(i = 0;i<26;i++)
    {
       if(nCount[i] != 0)
          printf("%d:%d",'a'+i,nCount[i]);
    }
      

  6.   

    需要的头文件:string.h,stdio.h