字频 strcmp 使用结构数组无限工作
Word Frequency strcmp working infinitely using struct array
我想逐字读取,并将哪个单词与结构数组中的内容进行比较。 如果我没有,我想添加第一个空白点。
#include <iostream>
#include <fstream>
#include <string>
#include<string.h>
using namespace std;
struct cuvinte{
char *cuvant;
int numar;
};
int main()
{
cuvinte multime[100];
ifstream f;
f.open("input.txt");
string str;
while(getline(f,str))
{
char * cuvant = new char[str.size() + 1];
char * abc = new char[str.size() + 1];
copy(str.begin(), str.end(), abc);
cuvant = strtok (abc," ,/_");
while(cuvant!=NULL)
{
for(int i=0;i<10;i++)
{
cout<<cuvant;
if(strcmp(cuvant,multime[i].cuvant)==0)
multime[i].numar++;
else
{
for(int j=0;j<10;j++)
if(multime[j].numar==0)
{
multime[j].cuvant=cuvant;
multime[j].numar=1;
}
}
}
cuvant = strtok ( NULL , " ");
}
}
return 0;
}
Strcmp 无限工作,只取第一个词;我不知道为什么。
在C++中,它应该只需要几行:
#include <string>
#include <fstream>
#include <unordered_map>
using WordFrequency = std::unordered_map<std::string, unsigned>;
WordFrequency read_words(std::istream& s) {
WordFrequency wf;
for(std::string word; s >> word;)
++wf[word];
return wf;
}
int main() {
std::fstream f("input.txt");
auto wf = read_words(f);
}
在使用word
之前,您可能希望将其小写并删除所有标点符号,以便您的字典不包含同一单词的单独条目,例如 Or
、or
、or,
。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- 我的c ++数组值不想改变,它输出无限循环
- 在C++中创建无限数组
- 字频 strcmp 使用结构数组无限工作
- 比较二维数组中的数字时的无限循环
- 读取文件中的数字数量无限,存储在数组中(无空间)
- 无限数组C++在一个表达式中使用两个新值调整数组大小
- 在数组上使用时最大堆无限循环,但不用于向量
- C++用户输入到字符串数组的无限循环
- 如何实现无限多维数组
- 这是一个具有基于数组的列表函数的数据结构项目,我似乎无法摆脱这个无限循环。
- 我认为做而正在进入无限循环.或数组.(运行时错误)
- 与所属的类具有相同类型对象的数组是否会创建无限个实例?
- 使用指向数组的指针实现无限大小的堆栈
- 最小堆通过二叉树的数组表示;MoveDown函数无限循环
- 访问无限数组元素
- c++无限参数数组
- 需要帮助创建Arduino (c/c++)的无限数组