第三次作业
}1. 实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词的出现频率。
2.性能分析:
- 对C++代码运行VS的性能分析工具,找出性能问题并进行优化。 对Java程序运行
- ,找出性能问题并进行优化。
作业提示:
- 字母: A-Z, a-z.
- 字母数字: A-Z, a-z, 0-9.
- 分隔符: 非字母数字
- 单词:
- 包含有4个或4个以上的字母
- 单词由分隔符分开
- 如果一个字符串包含_非_字母数字,则不是单词
- 单词大小写不敏感,例如 “file”、“FILE”和“File”可以看作同一个单词
- 单词必须是字母开头,“file123”是单词,“123file”不是单词
这次作业对我们这些能力很差的人来说很难,只是感觉到这次编程会用到好多自己没有
学好的知识,也不知道从何下手,最后只能通过借鉴网上的一些代码在同学的帮助下完成。
源程序:
#include "stdafx.h"
#include "iomanip.h"//
#include <iostream>//
struct word{
char c[30];
int n;
}w[1000];
void main(void){/*主程序*/
char b[30],Str[30000];
int i=0,m=1,k=0,flag=0,x=0;
cout << "Type a short text...\nStr=";
while(cin.get(Str[x]),Str[x++]!='\n');
Str[x-1]='\0';
x=0;
while(Str[x]){
if('A'<=Str[x] && Str[x]<='Z' || 'a'<=Str[x] && Str[x]<='z' || Str[x]=='-'){
b[i++]=Str[x];
flag=1;
}
else if(flag){
b[i]='\0';
flag=m=0;
for(i=0;i<k;i++){
if(strcmp(b,w[i].c)==0){
m=1;
break;
}
}
if(!m){
w[k].n=1;
strcpy(w[k++].c,b);
}
else w[i].n++;
i=0;
}
x++;
}
for(i=0;i<k;i++)
cout << w[i].c << " " << w[i].n << endl;
cout << endl;
}
基础太差 没办法 只能借助同学帮助,其他语言在学还不会用 C语言多少还会点。