第15周报告2
实验目的:学会操作字符数组
实验内容:完成对字符数组的操作
/*
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:操作字符
* 作 者: 姜雅明
* 完成日期: 2011 年 12 月 03 日
* 版本号: 1.2
* 对任务及求解方法的描述部分
* 输入描述:要处理的字符串在程序中通过赋初值完成
* 问题描述:求出字符数组中字符的个数及计算句子中各字符出现的频数
* 程序输出:字符数组中字符的个数和句子中各字符出现的频数
*/
#include<iostream>
using namespace std;
int length(char str[]);//函数声明
void 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 count = 0, i = 0;
while(str[i] != '\0')
{
i++;
count++;
}
return count;
}
void output_frequency(char str[])
{
int i = 0, j = 0, count, lengh;
lengh = length(str);
for(i = 0; i < lengh; i++)
{
count = 0;
for(int j = 0; j < lengh; j++) //进入循环后开始计数
{
if(str[j] == str[i])
{
if(i > j) //避免重复计数
break;
else
count++;
}
}
if(count != 0)
{
cout << str[i] << "-" << count << ";";
}
}
return;
}
运行结果:
经验积累:
1. 逐步求解
上机感言:
刚开始一点思路也没有,在计数时完全没有办法。后来想到循环,逐个向前找,排除。但是后来发现套用的
循环太多了···还有就是最初的大循环,i的值始终保持在1···只好改换思路。