看到一道面试题目:要求统计字符串中相同字符的个数,大写字母算小写字母来统计。例如: 输入字符串 bbBCcaA* ,输出*:1 a:2 b:3 c:2

 

代码如下:

 

 

;
 
//统计相同字符个数
void Calc(const char *str,int len);


int main()
{
   
char pch[MAX_NUMBER];

   
//输入字符串
   cin.getline(pch,MAX_NUMBER);

   
int length=strlen(pch);

   Calc(pch,length);

   
return 0;
}

void Calc(const char *str,int len)
{
   
int  LetterCounts[256];  //这个数组是关键,它存放着所以西文字符的个数
   int i;
   
for( i = 0 ; i < 256 ; i++
         LetterCounts[i]
=0;
   
   
for( i = 0 ; i < len ; i++)
   {
         
if ( str[i] >= 'A' && str[i] <= 'Z')
               LetterCounts[str[i]
+32]++;    //大写做小写处理
          else
               LetterCounts[str[i]]
++;
   }
   
   
for ( i=0 ; i < 256 ; i++)
   {
       
if (LetterCounts[i] > 0)  
           cout
<<(char)i<<":"<<LetterCounts[i]<<endl;
   }
  
}

 

相关文章: