请高手帮忙

tangsijun4 2003-05-17 09:58:13
假如有一字符串"ABEDESBAE",如何求出其字符中不同字符的个数(如A有多少个,B有多少个....),并将不同字符的个数定入数组temp[].
请问用C该如何写程序呀?
...全文
54 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shishiXP 2003-05-19
  • 打赏
  • 举报
回复
#include <iostream.h>
int temp[26]={0}; //如果只有大写字母的话
char s[]="ABEDESBAE";

void f(const char *s)
{
for(;*s!='\0';s++)temp[*s-'A']++;
}
void output()
{
for(int i=0;i<26;i++)if(temp[i])cout<<(char)(i+'A')<<temp[i]<<"个 ";
}
void main()
{
f(s);
output();
}
meteor135 2003-05-19
  • 打赏
  • 举报
回复
这个功能不完整的程序演示了如何统计键盘输入流中不同字符出现的频率,我想对于你的问题有帮助吧?
#include <stdio.h>
#include <stdlib.h>

typedef struct charNode
{
int rptTime;
char character;
}charNodeType;

void main()
{
int i,j,k;
int total;
char c;

charNodeType *charNodeArray;

int size=1000;

charNodeArray=(charNodeType *)malloc(sizeof(charNodeType)*size);

charNodeArray[0].rptTime=1;
charNodeArray[0].character=getchar();

k=0;
i=0;
while((c=getchar())!=EOF)//统计字符及出现的频率
{
k ++;//统计输入的总字符数
for(j=0;j<=i;j++)
{
if(charNodeArray[j].character==c)
{
charNodeArray[j].rptTime++;
c='\0';
break;
}
}
if(c)
{
charNodeArray[++i].character=c;
charNodeArray[i].rptTime=1;
}
}

total=i;

for(i=0;i<total;i++)
{
printf("%c\t%4d:\n",charNodeArray[i].character,charNodeArray[i].rptTime);
}

printf("\nTotal characters :%d\n",k);
free(charNodeArray);

}
Muf 2003-05-17
  • 打赏
  • 举报
回复
错了
while(*p)temp[*p++ -'A']++;
Muf 2003-05-17
  • 打赏
  • 举报
回复
int temp[26];
char s[]="ABEDESBAE";

...
char* p = s;
while(*p)temp[*p++]++;

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧