- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
今天我的代码遇到了一些问题。请求是读取一个包含
的txt文件"Today is Sunday. Tomorrow is Monday. Yesterday was Saturday."
并统计一个句子、一个段落中的句子的词数,找到该段中出现次数最多的词,然后写入文件。前两个请求我已经完成了,但是最后一个,当我运行代码时,它来了:
"Monday", or nothing.
那么我可以寻求一些建议来处理我的问题吗?代码如下。非常感谢!
#include <algorithm>
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
ifstream is;
is.open("test.txt", ios::in);
string total = "";
if (is.is_open())
{
string line = "";
while (getline(is, line))
{
total += line;
}
is.close();
}
ofstream os;
os.open("tes.txt", ios::out);
os << total << endl;
os.close();
vector<string> sen_vector;
size_t prev_pos = 0;
size_t cur_pos = total.find_first_of("!?.");
while (cur_pos != string::npos)
{
string sen = total.substr(prev_pos, cur_pos - prev_pos);
sen_vector.push_back(sen);
prev_pos = cur_pos + 2;
cur_pos = total.find_first_of("!?.", prev_pos);
}
vector<vector<string>> para_vector;
for (int i = 0; i < sen_vector.size(); i++)
{
vector<string> temp;
string sen = sen_vector[i] + " ";
size_t prev_pos_w = 0;
size_t cur_pos_w = sen.find(' ', prev_pos_w);
while (cur_pos_w != string::npos)
{
string word = sen.substr(prev_pos_w, cur_pos_w - prev_pos_w);
temp.push_back(word);
prev_pos_w = cur_pos_w + 1;
cur_pos_w = sen.find(' ', prev_pos_w);
}
para_vector.push_back(temp);
}
for (int i = 0; i < para_vector.size(); i++)
{
for (int j = 0; j < para_vector[i].size(); j++)
{
cout << para_vector[i][j] << ' ';
}
}
cout << endl;
cout << "So cau trong doan: " << size(para_vector) << endl; // Amount of sentences in a paragraph.
for (int i = 0; i<sen_vector.size(); i++)
cout << "So tu trong cau " << i + 1 << " la: " << size(para_vector[i]) << endl; // Amount of words in a sentence.
string a[100], d[100];
int n = 0;
for (int i = 0; i < sen_vector.size(); i++) // From sentence to sentence-array
{
a[i] = sen_vector[i] + " ";
n++;
}
cout << endl;
int dem = 0, m = 0, vt = 0;
int b[100], dt = 0;
for (int i = 0; i < sen_vector.size(); i++) // From sentence-array to word-array
{
size_t prev_pos_w = 0;
size_t cur_pos_w = a[i].find(' ', prev_pos_w);
for (int j = 0; j < n; j++)
{
while (cur_pos_w != string::npos)
{
d[i] = a[i].substr(prev_pos_w, cur_pos_w - prev_pos_w);
prev_pos_w = cur_pos_w + 1;
cur_pos_w = a[i].find(' ', prev_pos_w);
cout << d[i] << " ";
dt++;
}
}
}
/*for (int i = 0; i < dt-1; i++) // I got confused with these code (it came nothing when ran)
{
for (int j = 1; j < dt; j++)
{
if (d[i] == d[j])
{
count++;
}
}
b[i] = count;
}
int max = 0;
for (int i = 0; i <= n; i++)
{
if (max < b[i])
{
max = b[i];
vt = i;
}
}
cout << d[vt];*/
system("pause");
return 0;
}
最佳答案
我会使用 std::multiset
,为每个单词存储它被找到的次数。
std::multiset<std::string> word_set;
std::string word;
while (is >> word) {
word_set.insert(word); // it might be a good idea to remove non-word chars
}
然后你可以遍历元素,并返回具有最高重数的那个:
std::string most_seen = "";
int count = 0;
for (std::string i : word_set) {
if (word_set.count(i) > count)
most_seen = i;
}
return most_seen;
关于c++ - 统计段落中出现次数最多的词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50202590/
我的网页上显示了一份简历。其中包含部分(段落),例如教育、经验、项目等,这里是客户 想要通过在网页的段落(节)上拖动鼠标来移动页面上的这些节。我怎样才能实现这个功能。我正在使用 ruby on R
我有一个特定大小的 div,它是图像和两个段落。 都设置了向左浮动 div { width: 400px; height: 400px; } img { float: left; wi
我想完美对齐一段,使整个段落位于页面中央,但左右两边完美对齐。这是一个完美对齐的段落的图片示例: 该段落看起来像是在某种盒子中,左右两边完全笔直。我如何在 css 或 html 中执行此操作? 最佳答
我的 div 中有多个带有段落的项目,我想将它们 chop 为 2 行。我尝试使用高度进行 chop ,但结果会导致单词被 chop 。我无法使用字符,因为在某些情况下单词很长并且会被推到新行。 我正
有没有办法通过 .Net 框架(或有人写过类似的东西)在传递字符串和字典对象时获取匹配数组? 首先是一些背景 我需要 我有运动队的 csv 文件,我将其加载到字典对象中,例如... Team, Var
我需要创建一个程序来计算文本文件中字符的频率以及段落、单词和句子的数量。 我有一个问题,当我的程序输出字母的频率时,程序会为字母表中的每个字母输出多个输出。 输出应该是这样的: 如果输入是“hello
我的 Swing 应用程序中有一个 JTextPane,其上方有一个 JSlider。当我拖动 slider 时,我希望当前具有插入符号的 JTextPane 段落减少/增加其宽度(并相应地调整高度)
有没有办法通过 .Net 框架(或有人写过类似的东西)在传递字符串和字典对象时获取匹配数组? 首先是一些背景 我需要 我有运动队的 csv 文件,我将其加载到字典对象中,例如... Team, Var
假设我有一个文本句子: $body = 'the quick brown fox jumps over the lazy dog'; 我想将该句子放入“关键字”的散列中,但我想允许多单词关键字;我有以
我尝试编写一个服务器-客户端程序。我可以发送协议(protocol)文本并正确获取文本。但是当我尝试解析文本时,我遇到了 Matcher 类的问题。因为它只匹配第一行。那么我怎样才能找到正确的字符串并
由于 WordPress 在所有内容上都添加了段落标签,因此我需要在某些条件下删除段落标签。在这种情况下,我希望它们从图像中消失。我让那部分工作了: $(".scroller img").un
我需要匹配包含三个大括号之间的文本的完整 HTML 段落。 这是我输入的 HTML: {{{Lorem ipsum dolor sit amet. Ut enim ad minim veniam. D
我正在尝试查找大段落(超过一定数量的字符)并将其包装到一个范围内。目前我正在这样做: output.replace(/(\n{2}|^)([^\n{2}]{500,})(\n{2}|$)/mg, '$
所以我有这个模式,它应该提供不同的描述性段落,具体取决于用户从下拉列表中做出的选择。目前它只始终显示所有段落。我希望它在选择“公共(public)”时显示“隐藏”,在选择“内部”时显示“隐藏2”。等等
段落?
JSFiddle Link 我正在使用的 JSFiddle 似乎正是我的元素所需要的。但是,我将如何更改此当前代码以确保每个分段的段落包含相同数量的字符并且所有段落的宽度相同? 任何帮助将不胜感激,尤
我希望我所有的 p 标签继承正文的字体大小——如果我没有在它们上声明字体大小或将它们嵌套在带有字体的父项中,它们会自动执行——尺寸声明。 但是我应该在 CSS 中的 p 中添加 font-size:
警告框作为回显?
Achtung! This alert box indicates a dangerous or potentially negative action.× 所以我创建了自己的警告框,但问
有什么方法可以使用 python-docx 访问和操作文本框中现有 docx 文档中的文本? 我试图通过迭代在文档的所有段落中找到关键字: doc = Document('test.docx') fo
这是在亚马逊电话采访中被问到的——“你能写一个程序(用你喜欢的语言 C/C++/等)在一个大的字符串缓冲区中找到一个给定的词吗?即数字出现次数“ 我仍在寻找我应该给面试官的完美答案。我试着写一个线性搜
当我使用这段代码时,我可以用文本制作图像,但在一行中, function writetext($image_path,$imgdestpath,$x,$y,$angle,$text,$font,$fo
我是一名优秀的程序员,十分优秀!