繁体   English   中英

如何在C ++中的字符串中每N个字符插入一个字符

How to insert a character every N characters in a string in C++

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我如何可以插入一个char ACTER成字符串 1个字符后到底是什么?

我需要插入'|' 在每个其他角色之后进入字符串。

换句话说(C ++): "Tokens all around!"
变成: "T|o|k|e|n|s| |a|l|l| |a|r|o|u|n|d|!" (不,那不是一个数组)

谢谢

5 个回复
std::string tokenize(const std::string& s) {
   if (!s.size()) {
     return "";
   }
   std::stringstream ss;
   ss << s[0];
   for (int i = 1; i < s.size(); i++) {
     ss << '|' << s[i];
   }
   return ss.str();
}

我想我会使用标准算法和迭代器:

std::string add_seps(std::string const &input, std::string sep="|") { 
    std::ostringstream os;
    std::copy(input.begin(), input.end(), std::ostream_iterator<char>(os, sep));
    return os.str();
}

就目前而言,这会在输入的最后一个字符后面添加一个分隔符。 如果你只想在字符之间使用它们,你可以使用infix_ostream_iterator

您可以使用

string& insert (size_t pos, const string& str);

你必须循环遍历字符串,每次都插入一个字符。

for (int i = 1; i < str.size(); i++) {
      str << str.insert(i, '|');
      i++;
}

这是我的C ++ 11示例(使用gcc 4.7):

#include <string>
#include <iostream>

template<const unsigned num, const char separator>
void separate(std::string & input)
{
    for ( auto it = input.begin(); (num+1) <= std::distance(it, input.end()); ++it )
    {
        std::advance(it,num);
        it = input.insert(it,separator);
    }
}

int main(void)
{
    std::string input{"aaffbb3322ff77c"};
    separate<3,' '>(input);
    std::cout << input << std::endl;
    separate<4,'+'>(input);
    std::cout << input << std::endl;
    return 0;
}

结果输出是:

aaf fbb 332 2ff 77c

aaf + fbb +332 + 2ff + 77c

这是一种稍微不同的方法,它只对结果字符串进行1次分配,因此它应该比其他一些建议稍微有效。

std::string AddSeparators(const std::string & s)
{
    if(s.size() <= 1)
        return s;

    std::string r;
    r.reserve((s.size()*2)-1);
    r.push_back(s[0]);
    for(size_t i = 1; i < s.size(); ++i)
    {
        r.push_back('|');
        r.push_back(s[i]);
    }
    return r;
}
1 Javascript:每n个字符串中插入一个字符

我想在第n个索引中的字符串中插入一个字符。 基本上只格式化从1000到1,000或100,0的数字 到目前为止,这就是我所拥有的。 尝试了一些变化,但这是我得到的最接近的变化。 我想念什么? 这是使用功能的jsFiddle的链接: https ://jsfiddle.net/d ...

3 在C ++中每N个字符插入一个字符,改变N字符

我正在尝试使用: from( 如何在C ++中的字符串中每N个字符插入一个字符 )但更改"|" 从每个字符插入到每16个字符。 我尝试改变i++ ----&gt; i+=16但是失败并使"sqdfqdfqwerqwer"成为"s|q" 有人能找到我的错误吗? ...

5 每N个字符将一个字符串插入另一个字符串

假设我们有字符串$string="lolololol|lolololol|lolololol|lolololol" 。 因为我需要在浏览器中显示它,所以我想每N(例如50个)字符添加一个&lt;wbr&gt;标记( 请参阅 &lt;wbr&gt; ),但是我不确定如何在PHP中执行此操作。 ...

6 迭代地将一个字符插入到一个字符串的不同索引中

我正在尝试制作一个 Python 程序,它从头到尾迭代插入 1 个点,然后从头到尾插入 2 个点,等等。例如,给定一个字符串abcd ,我想生成['abcd', 'a.bcd', 'abcd', 'abcd', 'a.bc.d', 'ab.cd', 'ab.c.d', 'abc.d'] 。 因此,对 ...

2020-12-02 23:16:27 5 120   python
8 Excel / VBA - 如何每N个字符在字符串中插入一个字符

我有一个报告,它在导出时会在一个单元格中显示一个单个字符串的订单号(总是7位长)。 例如:订单1234567和9876543将在单个单元格中显示为12345679876543。 每个单元格没有最大订单数,每个单元格都有所不同。 有没有什么方法可以每7位数添加一个字符,以便我可以在之后为 ...

9 如何在另一个字符串中插入一个字符串?

只是看看功能 这有助于在给定输入的左侧,右侧或两侧填充一些字符串。 有没有我可以用来在输入字符串中插入字符串的php函数? 例如 .. 因此,如果我给插入索引3,它会在前3个最左边的字符后插入"@" , $input变为"abc@def" 。 谢谢 ...

10 如何从右边每3个字符向字符串中插入一个字符

我有一个由数字组成的字符串。 字符串的长度范围从 1 个字符到 9 个字符。 我想从右侧每三个字符插入一个破折号 (-)。 这仅与超过三个字符的字符串相关。 这只是一个选择语句,因为我不想实际更新字符串本身。 例如, ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM