实验目的:学会操作字符数组
实验内容:完成对字符数组的操作
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:学会操作字符数组
* 作 者:薛广晨
* 完成日期:2011 年 11 月 30 日
* 版 本号:x1.0
* 对任务及求解方法的描述部分
* 输入描述:要处理的字符串在程序中通过赋初值完成
* 问题描述:求出字符数组中字符的个数及计算句子中各字符出现的频数
* 程序输出:字符数组中字符的个数和句子中各字符出现的频数
* 程序头部的注释结束
#include<iostream>
using namespace std;
//函数声明
int length(char count[]);
void output_frequency(char fre[]);
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 arr[])函数;
int length(char count[])
{
int i=0,count_num=0;
while(count[i]!='\0')
{
i++;
count_num++;
}
return count_num;
}
//定义void output_frequency(char arr[])函数;
void output_frequency(char fre[])
{
int i=0,str=0,count;
bool pass;//定义布尔变量;
do{
pass=true;
for(i=str-1;i>=0;i--)//判断前面是否出现过fre[str]里面的字符;
{
if(fre[str]==fre[i])
{
pass=false;//如果出现赋值false这样后面的if就不会执行了;
break;
}
}
if(pass)//如果没出现;
{
i=str;//将此数值赋给i减少运算次数;
count=0;//注意初值要与i++或++i对应;
do{
if(fre[str]==fre[i++])
{
count++;
}
}while(fre[i]!='\0');//判断是否结束;
cout<<fre[str]<<"-"<<count<<"; ";//输出;
}
str++;
}while(fre[str]!='\0');
}
运行结果:
经验积累:
1.多读课本吧
2.
3.
上机感言:有难度,有挑战性