实验目的:学会操作字符数组
实验内容:完成对字符数组的操作
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作
* 完成日期:
* 版本号:
* 对任务及求解方法的描述部分
* 输入描述:要处理的字符串在程序中通过赋初值完成
* 问题描述:求出字符数组中字符的个数及计算句子中各字符出现的频数
* 程序输出:字符数组中字符的个数和句子中各字符出现的频数
* 程序头部的注释结束
#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 i, j;
for(i = 0, j = 0; str[i] != '\0'; i++)
{
j = j + 1;
}
return j;
}
void output_frequency(char str[])
{
int i, j, k, l;
for(l = 0, k = 0; l < length(str); k++)
{
for(i = 0, j = 0; i < length(str); i++)
{
if(str[k] == str[i])
if(i < k)
break;
else
if(i >= k)
{
j = j + 1;
}
else
continue;
}
if(j == 0)
cout;
else
{
cout << str[k] << "-" << j << ";" << " ";
}
l++;
}
}
运行结果(贴图):
#include <iostream>
using namespace std; //函数声明
int length(char str[]);
void output_frequency(char str[]);
int main(void) //不要对main函数有任何改动
{
char str[] = "I am Xu Jiajian";
cout << "要处理的字符串为:" << str << endl;
cout << "字符串长度为:" << length(str) << endl;
cout << "字符串中各字符出现的频数为:";
output_frequency(str);
cout << endl;
return 0;
}
int length(char str[])
{
int i, j;
for(i = 0, j = 0; str[i] != '\0'; i++)
{
j = j + 1;
}
return j;
}
void output_frequency(char str[])
{
int i, j, k, l;
for(l = 0, k = 0; l < length(str); k++)
{
for(i = 0, j = 0; i < length(str); i++)
{
if(str[k] == str[i])
if(i < k)
break;
else
if(i >= k)
{
j = j + 1;
}
else
continue;
}
if(j == 0)
cout;
else
{
cout << str[k] << "-" << j << ";" << " ";
}
l++;
}
}
运行结果:(贴图)
2.计算字符串的长度时,注意字符串末尾的'\0',在计数时是可以利用的条件。
3.在处理各个字符的频数时,我用的方法是当现在要计数的字符以前出现过时,几跳出循环体,和老师的思路有所不同,不同的人有不同的见解嘛!注意随机应变,采用自己熟悉的方法解决问题。
上机感言:
开始时想用strlen直接计数字符串的长度的,可是却被老师禁用了,不过还好,实验指导上有提示,所以也没费太大的功夫。可是却被接下来的问题绊住了,以我开始的思路,结果是26个字符的频数全部输出一次,当然频数还是对的,还算稍微有点安慰,接下来就是和怎样不重复打交道了,经过许久的思索也算是顺利解决了,综上所述,结果还算让人满意,信心实力总体有所增加,阿弥陀佛。