gpt4 book ai didi

c - 如何将一个字符随机附加到字符串中?

转载 作者:行者123 更新时间:2023-11-30 21:04:20 27 4
gpt4 key购买 nike

我正在尝试生成一个将字符连接到给定字符串的字符串。

例如,我的字符串是“hello”,字符是“#”。我想生成一个字符串,显示这些的所有可能的组合。即,结果可以是“hello#”、“he#llo”、“hell#o”等。

您能提供使用 C 生成此类字符串的代码吗?

感谢您的努力。

最佳答案

您需要一些有关算法的帮助。

假设字符串由指针s指向,char *s = "hello";

要确定随机位置,您可以使用 stdlib 库中的 rand()。在 C 中,数组(字符串是字符数组,或者由字符指针指向(并以 0 字节结尾)。在每种情况下 arr[0]ptr [0] 是第一个字符)第一个索引是 0。因此最后一个字符位于 [length-1]。为了确保随机位置在 0 到 length-1 之间,可以使用模 % 运算符,例如 intposition = rand() % strlen(s);,但是由于随机字符可能位于末尾,因此您需要向该 strlen(s) 加 1。

  • 如上确定位置
  • 创建一个长度为 length(s)+2 的字符数组(添加随机字符和结尾 0),名为 t
  • s部分从0复制到position-1(注意position == 0情况)到t(例如strncpy)
  • 连接到t随机字符(假设t是一个由1个字符组成的字符串,这会更容易,同时有一个技巧可以轻松复制一个字符...)(例如strcat)
  • 连接到 t 的剩余部分 s,即从 position 开始(注意 position == length(s)案例)
    • 显示t
  • 重复令人作呕

不知道这是一项作业还是你想自己做的事情 - 不关我的事。但请您亲自尝试一下。你会看到的。首先,它是一个 PITA。然后就很有趣了!

关于c - 如何将一个字符随机附加到字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14253138/

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