浏览 3201 次
锁定老帖子 主题:打印字符串中所有字符的全排列
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-26
最后修改:2009-12-03
给定一字符串为:"ABC" 要能打印出: ABC ACB BAC BCA CAB CBA #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> static void arrange(char *s, int start, int end); int main(int argc, char **argv) { if (argc != 2) { printf("usage: ./allrange <string>\n"); exit(EXIT_FAILURE); } arrange(argv[1], 0, strlen(argv[1])); exit(EXIT_SUCCESS); } static void arrange(char *s, int start, int end) { int i; char tmp; if (start == end) { printf("%s\n", s); } else { for (i = start; i < end; i++) { tmp = s[start]; s[start] = s[i]; s[i] = tmp; arrange(s, start + 1, end); tmp = s[start]; s[start] = s[i]; s[i] = tmp; } } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |