计算字符串中所有字符的函数 - C++

2023-12-26

我想用C++写一个函数,计算字符串中的所有字符# 我有一个名为 input 的字符串,程序的用户可以在其中输入一个句子, 我将重要的字母存储在字符串字母表中,如下所示:

string alphabet {"ABCDEFGHIJKLMNOPQRSTUVWXYZ"};

以及一个用于存储字母出现频率的向量,例如A 位于位置 0,B 位于位置 0,依此类推。

vector<long> letterCount (26);

我已经编写了这个函数,就像我认为它应该起作用一样,它似乎能够计算出字符的出现次数,但之后这个数字乘以字母在字母表中的位置。这是函数:

long countLetters(int& p) {
  for(int i = 0; i < alphabet.size(); ++i) {
      for(long j = 0; j < count(input.begin(), input.end(), alphabet.at(i)) {
          countLetters.at(i)++;
      }
  }
return letterCount.at(p);
}

例如,如果输入是“HELLO”,程序会输出:

E : 5
H : 8
L : 24
O : 15

所以你看,例如字母“L”在字符串中出现了两次,但“L”的结果是 24,因为“L”在字母表中位于第 12 位。

如果您意识到我的问题是什么,请帮忙。

编辑:我找到了一种有效的方法,至少部分有效:

long countLetters(int& p) {
   for(size_t i = 0; i < input.length(); ++i) {
      for(size_t j = 0; j < alphabet.length(); ++j) {
        letterCount.at(j) = count(input.begin(), input.end(), alphabet.at(j));
      }
   }
   return letterCount.at(p);
 }

但是,当输入两个或多个单词时,该函数仅计算出第一个单词中出现的字母。如何分析更多单词?

编辑:在我之前cin >> input but getline(cin, input);是对的。


你正在做某种奇怪的双循环。相反,在单个循环中迭代字符串并将其计入正确的组中:

for (int i = 0; i < input.length(); i++) {
    char c = input[i];
    if (c < 'A' || c > 'Z') continue;
    countLetters[c-'A'] += 1;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算字符串中所有字符的函数 - C++ 的相关文章

  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 使用 VSTS 发布定义的蓝/绿部署

    我还没有看到任何有关如何在 VSTS 发布定义上进行蓝 绿部署的信息 我有一个 VSTS 发布定义 当我们的源代码中完成新的签入时 它会自动将新的更改部署到我们的 Prod 环境中 现在 该项目正在使用 Azure 流量管理器 并且添加了位
  • 枚举反向查找[重复]

    这个问题在这里已经有答案了 假设我有一个枚举 enum Color Red 1 Green Blue 如果我有一个号码 我可以通过这样做来获取枚举键 var colorName string Color 2 colorName Green
  • Python中使用os.walk()递归遍历目录

    我想从根目录导航到其中的所有其他目录并打印相同的内容 这是我的代码 usr bin python import os import fnmatch for root dir files in os walk print root print
  • ActiveModel::匿名类的验证

    我正在开发一个类似 DataMapper 的小型 ODM 项目 并且我正在尝试利用ActiveModel Validations成分 然而 我在编写测试时遇到了问题 我使用匿名类来构建我的测试模式 但是当涉及到运行验证器时 ActiveMo
  • 将 std::string ** 转换为 char *** 并且它恰好可以工作。如何?

    考虑以下代码 std vector
  • Python读取格式化字符串

    我有一个包含多行的文件 其格式如下 FIELD POSITION DATA TYPE COOP ID 1 6 Character LATITUDE 8 15 Real LONGITUDE 17 25 Real ELEVATION 27 32
  • jQuery 更改 iFrame 的内容

    我对使用 jQuery 完全陌生 为什么这不起作用 your browser needs to be updated 另外 我计划使用此 iFrame 向用户展示 html 文件更改的预览 我将在
  • Scala - 循环案例类名称以用作类型参数

    我在 Scala 代码 Scala 2 13 中有一个这样的函数 可以与 Spark 一起使用 def getDataset T lt Product TypeTag name String Dataset T import spark i
  • 运行TFS构建服务(NT AUTHORITY\NETWORK SERVICE)的帐户需要在发布管理服务器中添加为系统用户

    当我尝试从我的构建中触发发布时 我收到上述错误 构建可以自行运行 发布也可以自行运行 但我无法触发发布 我的问题是发布管理中没有系统用户这样的东西 存在一个服务用户 将上述用户设置为服务用户 它还被设置为发布管理器 它还位于 TFS 中的
  • 具有类型安全实现的 Java 泛型接口

    我正在寻找从通用框架调用特定接口的良好替代方案 我用代码来举例说明 看看问题部分 包含示例代码主要是为了彻底性 并将示例应用到实际场景中 Example 假设我们想要基于组件列表构建报告 假设我们有两种特定的组件类型 public inte
  • 使用 RxJS Observable 传输 JSON

    我正在尝试了解有关 RxJ 的一些事情 我想要做的是使用一些 JSON 数据 并在数据传入时立即开始在 DOM 上呈现该数据 我已经设置了流请求 响应和显示 它的输出一切都很好 但它是一次性完成的 而不是随着时间的推移 我想开始在页面上显示
  • 设置-webkit-transform并使用JS进行转换

    我正在尝试使用 jQuery 更改元素的 transform css 属性 myBlock css webkit transform rotate angle deg myBlock css moz transform rotate ang
  • 如何手动指定 X-Cloud-Trace-Context 标头值并关联和跟踪单独的 Cloud Run 请求中的日志?

    我正在使用 Cloud Run 和 Cloud Tasks 对 Webhook 进行一些异步处理 当我收到对 Cloud Run 服务的请求时 我会在 Cloud Tasks 队列中对任务进行排队 并立即从服务返回响应 然后 云任务将再次触
  • 为什么 django 不使用带有日期模板标记的 SHORT_DATE_FORMAT?

    当我为日期模板标记指定 SHORT DATE FORMAT 时 我很难理解为什么 django 不在模板中使用我的 SHORT DATE FORMAT 我的设置是 TIME ZONE Australia Melbourne SHORT DA
  • Go 中从 C 调用的整数除法

    我可以通过这个程序在 go 中执行整数除法 package main import fmt func main a 10 b 5 fmt Println a b 然后我用 go 编写了一个程序 其中包含 和 的函数 我用 C 编写了一个程序
  • 错误:非法重新分配导入

    我正在尝试将模块导入到打字稿文件中 然后与 Rollup js 捆绑在一起 但我收到一条错误消息 导致 Rollup 无法完成 进口 import as mapboxgl from mapbox gl mapboxgl as any acc
  • 如何扩展 JSX.IntrinsicElements['div']? TS2499

    我怎么可以通过创建一个新类型JSX IntrinsicElements div X但我不能延长它 我不明白错误消息 我不是简单地添加了一个 可选类型 吗 这两种不同的方式扩展类型有什么区别 对我有用的是预先定义类型 type SpanPro
  • Facebook 嵌入视频的 OpenGraph 遇到的困难

    我在实施通过研究找到的解决方案时遇到了一些困难here https stackoverflow com a 17811187 1467082 实际接受的答案没有帮助 已被投给玻利维亚 Problem Facebook 似乎无法识别我添加到标
  • 如何通过我的应用程序向服务器发送反馈信息?

    在我的应用程序中将使用反馈表 我必须将反馈信息发送到服务器 请帮助我如何在 Windows Phone 中将信息发送到服务器 您可以使用 EmailTask var emailTask new EmailComposeTask To ema
  • 计算字符串中所有字符的函数 - C++

    我想用C 写一个函数 计算字符串中的所有字符 我有一个名为 input 的字符串 程序的用户可以在其中输入一个句子 我将重要的字母存储在字符串字母表中 如下所示 string alphabet ABCDEFGHIJKLMNOPQRSTUVW