+ -
当前位置:首页 → 问答吧 → 求出字符数组中字符的个数及计算句子中各字符出现的频数

求出字符数组中字符的个数及计算句子中各字符出现的频数

时间:2011-11-30

来源:互联网

#include<iostream>
using namespace std;
int length(char str[]);
char output_frequency(char str[]);
//函数声明

int main(void) //不要对main函数有任何改动
{
 char str[]="he threw three free throws";
 cout<<"要处理的字符串为:"<<str<<endl;
 cout<<"字符串长度为:"<<length(str)<<endl; 
 cout<<"字符串中各字符出现的频数为:";
 output_frequency(str);
 cout<<endl;
 return 0;
}
int length(char str[])
{
 int i,j=0;
 for(i=0;str[i]!='\0';i++)
 {
  j++;
 }
 return j;
}
char output_frequency(char str[])
{
  这个函数怎么解

作者: haliluya12345   发布时间: 2011-11-30

这个好解。给一个能统计字符串中256个ASCII字符的你
void output_frequency(char str[])
{
  int num[256];
  for(int i=0;i<256;i++)
  {
  num[i]=0;
  }
  for(i=0;str[i]!='\0';i++)
  {
  ++num[int(str[i])];
  }
  for(i=0;i<256;i++)
  cout<<"字符"<<char(i)<<"的频度为:"<<num[i];
}

若你只需要输出字母的频度。可将num的下标控制为65-90,97-122

看在我这么认真的份上给我分吧

作者: shimachao   发布时间: 2011-11-30

引用 1 楼 shimachao 的回复:
这个好解。给一个能统计字符串中256个ASCII字符的你
void output_frequency(char str[])
{
  int num[256];
  for(int i=0;i<256;i++)
  {
  num[i]=0;
  }
  for(i=0;str[i]!='\0';i++)
  {
  ++num[int(str[i])];
  }
  fo……

就是这样的 先出实话一个256的数组然后把每个字符作为数组下标来访问和修改

作者: hnuqinhuan   发布时间: 2011-11-30

楼上正解。..不必多言,言多必失

作者: mingliang1212   发布时间: 2011-11-30