字符串重复被连字符替换C++

2023-12-07

我是编码的初学者,正在尝试这个问题,用连字符替换字符串中字母的所有重复:即 ABCDAKEA 将变为 ABCD-KE-。我使用了 switch 循环并且它有效,但我想让它更短,也许使用递归来使其更有效。有任何想法吗?

    #include<iostream>
    #include<string.h>
    using namespace std;
    int main()
    {
    char x[100];    
    int count[26]={0}; //initialised to zero
    cout<<"Enter string: ";
    cin>>x;
    for(int i=0; i<strlen(x); i++)
    {
    switch(x[i])
    {
    case 'a':
        {
        if((count[0]++)>1)
        x[i]='-';
        }
    case 'b':
        {
        if((count[1]++)>1)
        x[i]='-';
        }
    case 'c':
        {
        if((count[2]++)>1)
        x[i]='-';
        }
        //....and so on for all alphabets, ik not the cutest//
      }
      }

遍历数组,跳过空格,并将以前从未遇到过的字符放入std::set,如果您再次找到它们,请将它们放入重复项中std::set如果您想跟踪有多少重复项,则将该位置的原始字符串的值更改为连字符。

#include <iostream> 
#include <string>
#include <cctype>
#include <set>

int main() {
    std::string s("Hello world");
    std::set<char> characters;
    std::set<char> duplicates;

    for (std::string::size_type pos = 0; pos < s.size(); pos++) {
        char c = s[pos];

        // std::isspace() accepts an int, so cast c to an int
        if (!std::isspace(static_cast<int>(c))) {
            if (characters.count(c) == 0) {
                characters.insert(c);
            } else {
                duplicates.insert(c);
                s[pos] = '-';
            }
        }
    }

return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串重复被连字符替换C++ 的相关文章

随机推荐

  • SQL 级函数是否可用于 LINQ to Entity 查询?

    我希望我可以编写调用其他函数的 LINQ to Entity 查询 from c in context Widgets where MyFunc c name select c 这会导致错误 因为表达式显然无法转换为调用 MyFunc 的
  • PHP 函数 ssh2_connect 不起作用

    以下是我的脚本
  • 如何使用Hamcrest来测试异常?

    我有以下代码 def f String s assert s contains 什么 Hamcrest 匹配器可用于测试断言 我知道我可以使用try catch块 但我更喜欢将测试的圈复杂度保持为 1 EDIT 如果你真的必须使用 Hamc
  • “resolve_variable”在 Django 中做什么? (“模板.变量”)

    什么是resolve variable做 我可以用它来访问request视野之外 Edit So template Variable是正确的方法 但我仍然不确定其目的 该文档并没有真正的帮助 干杯 伙计们 我假设您尝试在此处编写自定义模板标
  • 关闭 pyplot 窗口

    最终编辑 我在关闭 pyplot 窗口的主题上发现 它实际上可能不应该使用 pyplot 来完成 SRK 给出了一个关于如何处理绘图的很好的例子 这些例子将在下面的答案中更新 另外 我还偶然发现了如何将 pyplot 绘图放入 Tkinte
  • 如果没有循环,这个 JavaScript 问题是否可能实现?

    目前在代码提交网站上 它不会让我继续前进 使用此字符数组 将名称以 M 开头的每个字符打印到控制台 暂时不要使用任何类型的循环 var filmCharacters Vito Michael Sonny Freddo Mia Vincent
  • 如何声明一个可以被每个方法使用的变量? | C#

    我想问一下如何声明一个可以被所有方法使用的变量 我尝试将方法的访问类型公开 但这不允许我在其他方法中使用它的变量 此外 我基本上想通过不同的方法累积具有不同值的变量 这就是我问这个的原因 NOTE 我想避免创建任何静态类 EDIT 例如 我
  • 我如何知道 Flex DataGrid itemRenderer 中的按钮何时被单击?

    我有一个显示几列数据的 DataGrid 组件 它还有一个附加列 显示一个按钮 允许用户对记录执行操作
  • Pandas 中通过多个分隔符将一列拆分为多列

    给定一个数据框如下 player score 0 Sergio Ag ero Forward Manchester City 209 98 1 Eden Hazard Midfield Chelsea 274 04 2 Alexis S n
  • MongoDB-CR 身份验证失败

    我在验证用户身份时收到以下错误 purchase user purchase 失败 MongoDB CR 身份验证失败 当我通过浏览器访问 Web 服务时 用户文档中缺少凭据 但我能够从 mongo 验证 buy user 它返回 1 转到
  • 在 WooCommerce 中将爱尔兰的邮政编码结帐字段设置为必填字段

    在 WooCommerce 结帐页面中 我希望将邮政编码字段 爱尔兰爱尔兰代码 更改为必填字段 默认情况下 当所选国家 地区为爱尔兰时 这是可选字段 我只是想知道是否有办法将其更改为必填字段 并在 Eircode 旁边有一个小红星来表示它是
  • 如何在R中快速组合60个矩阵

    我在 R 中有 60 个矩阵 名为 mat1 mat2 mat60 我想使用 rbind 将它们组合成一个大矩阵 我知道我可以写一些类似的东西 matList lt list mat1 mat2 mat60 rbind matList 但这
  • 如何使用FileSavePicker保存现有的StorageFile?

    我正在尝试将现有文件保存到另一个地方 这是某种副本 但我想允许用户使用 FileSavePicker 选择新的目的地 这是我的代码 StorageFile currentImage await StorageFile GetFileFrom
  • 我可以在 Windows XP SP2 上使用哪些免费的 Powershell 编辑器?

    我家里有 Windows 7 和 Powershell 2 我非常喜欢免费版本的 PowerGUI Powershell 编辑器 我想在工作中开始使用 Powershell 但我们使用的是 XP SP2 上的 1 o 版本 我本来打算安装
  • 对 2 个相互依赖的表进行复杂的 SQL 更新

    我有一个数据库 其中有几个表跟踪电话 短信 数据和津贴 我正在尝试计算是否可以在不诉诸游标的情况下将电话分配给津贴 但我无法找到一种方法构造 SQL 来执行此操作 我的尝试没有得到任何有用的 SQL 因为我似乎不知道如何处理它 问题是 对我
  • lxml xpath 不会忽略“ ”

    我有这个 HTML td class 0 b Bold Text b nbsp a href a td td class 0 Regular Text nbsp a href a td 当使用 xpath 格式化时 new html tre
  • Android、Java 上的单选按钮列表

    我需要创建一个单选按钮列表 但如果我尝试使用 ListView 来完成此操作 我可以同时选择所有单选按钮 但我需要同时选择 1 个单选按钮 因此 我可以尝试这段代码 RadioGroup group new RadioGroup this
  • 使用 FCM 从服务器发送推送通知

    最近我问了一个关于使用GCM发送推送通知的问题 向 Android 发送推送通知 现在有了FCM 我想知道它与服务器端开发有什么不同 就编码而言 它们相同吗 在哪里可以找到显示从服务器向 Android 设备发送推送通知的示例 FCM 代码
  • 有没有办法在 Lightswitch 中基于下拉菜单创建搜索屏幕

    我想在搜索屏幕上的搜索框所在位置放置一个下拉列表 并将每个条目与不同的查询相关联 这是针对我的业务中使用的数据库 我们目前有太多屏幕 例如 所有设备 新设备 可用设备 出售设备 未付费设备 未付佣金 我正在使用 2012 RC 的 Ligh
  • 字符串重复被连字符替换C++

    我是编码的初学者 正在尝试这个问题 用连字符替换字符串中字母的所有重复 即 ABCDAKEA 将变为 ABCD KE 我使用了 switch 循环并且它有效 但我想让它更短 也许使用递归来使其更有效 有任何想法吗 include