gpt4 book ai didi

c++ - C++中的字符串处理

转载 作者:太空狗 更新时间:2023-10-29 21:08:23 25 4
gpt4 key购买 nike

我如何在 C++ 中编写一个函数,它接受一个字符串 s 和一个整数 n 作为输入,并在输出处给出一个字符串,每个 都有空格s 中的 n 个字符?

例如,如果输入是 s = "abcdefgh"n = 3 那么输出应该是 "abc def gh"

编辑:

我本可以为此使用循环,但我正在寻找简洁且惯用的 C++ 解决方案(即使用 STL 算法的解决方案)。

编辑:

以下是我在 Scala(恰好是我的主要语言)中的做法:

def drofotize(s: String, n: Int) = s.grouped(n).toSeq.flatMap(_ + " ").mkString

用 C++ 可以实现这种程度的简洁吗?还是我最终必须使用显式循环?

最佳答案

循环复制每个字符,当 i>0 && i%(n+1)==0 在目标字符串中添加额外的空格。


至于标准库,您可以编写自己的 std::back_inserter,这将添加额外的空格,然后您可以按如下方式使用它:

std::copy( str1.begin(), str1.end(), my_back_inserter(str2, n) );

但我可以说写这样一个仿函数只是在浪费你的时间。编写一个带有旧的好 for 循环的函数 copy_with_spaces 要简单得多。

关于c++ - C++中的字符串处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3153012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com