c - 字符串中所有可能的字符组合

标签 c arrays string permutation shuffle

我有一个包含八个字符的字符串,例如abcdefgh。我需要生成该字符串所有可能的 10 个字符组合。

例如,该字符串的所有 2 个字符组合均为 ab bc cd ef gh ac ad ae af ah

我想做类似 this 的事情但我不知道如何让它工作。

我该怎么办?我缺少一个简单的算法吗?

最佳答案

您可以使用 2 个指针,一个位于字符串开头的字母 t 上,每次位于 '/0' 时该指针都会递增 a,第二个指针在循环的每一轮中仅以 fo 为条件递增您不会重写旧的组合。

aa ab ac ... bb bc ...

编辑:

不需要条件,只需将第一个指针上的第二个指针重置为1即可

关于c - 字符串中所有可能的字符组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44464685/

相关文章:

javascript - 获取数组元素的索引号

java - 可以将多种类型的对象放入一个数组中吗?

c++ - 为什么不能将数组的地址分配给指针?

python - 从 Python 和 C 生成 sphinx 文档

c - 将串行数据重定向到以太网数据

c - 跳过 C 中的 Scanf 语句

将字符串中的一个字符更改为字符串

php - 转换数组取字符串

string - 如何删除Erlang中字符串内的周围引号?

c++ - 为什么使用 'cpp' 编译这个简单的 C++ 程序会失败?