数据结构(C语言版) 串数组和广义表 算法设计Demo1
Posted Aiden (winner)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构(C语言版) 串数组和广义表 算法设计Demo1相关的知识,希望对你有一定的参考价值。
写一个算法统计在输入字符串中各个不同字符出现的频度并将结果存入文件(字符串中的合法字符为A-Z这26个字母和0-9这10个数字)。
[题目分析]
由于字母共26个,加上数字符号10个共36个,所以设一长36的整型数组,前10个分量存放数字字符出现的次数,余下存放字母出现的次数。从字符串中读出数字字符时,字符的ASCII代码值减去数字字符 ‘0’的ASCII代码值,得出其数值(0……9),字母的ASCII代码值减去字符‘A’的ASCII代码值加上10,存入其数组的对应下标分量中。遇其它符号不作处理,直至输入字符串结束。
[算法描述]
void Count()
//统计输入字符串中数字字符和字母字符的个数。
int i;num[36];
char ch;
for(i=0;i<36;i++)num[i]=0;// 初始化
while((ch=getchar())!='#') //‘#’表示输入字符串结束。
if('0'<=ch<='9')
i=ch-48;
num[i]++;
// 数字字符
else if('A'<=ch<='Z')
i=ch-65+10;
num[i]++;
// 字母字符
for(i=0;i<10;i++) // 输出数字字符的个数
cout<<"数字"<<i<< "的个数="<<num[i]<<endl;
for(i=10;i<36;i++)// 求出字母字符的个数
cout<<"字母字符"<<i+55<< "的个数="<<num[i]<<endl;
以上是关于数据结构(C语言版) 串数组和广义表 算法设计Demo1的主要内容,如果未能解决你的问题,请参考以下文章