第三次作业

}1. 实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词的出现频率。

2.性能分析:

    • 对C++代码运行VS的性能分析工具,找出性能问题并进行优化。
    • 对Java程序运行

性能分析工具 NetBeans IDE 6.0

    ,找出性能问题并进行优化。

作业提示:

    • 字母: 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... Str=";
while(cin.get(Str[x]),Str[x++]!=' ');
Str[x-1]='';
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]='';
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语言多少还会点。
原文地址:https://www.cnblogs.com/mengshen/p/5285201.html