编程算法 - 字符串的排列 代码(C)

来源:互联网 发布:js中fontcolor 编辑:程序博客网 时间:2024/06/14 00:56

字符串的排列 代码(C)


本文地址: http://blog.csdn.net/caroline_wendy


题目: 输入一个字符串, 打印出该字符串中字符的所有排列.


方法: 使用递归依次交换位置, 打印输出.


代码:

/* * main.cpp * *  Created on: 2014.6.12 *      Author: Spike *//*eclipse cdt, gcc 4.8.1*/#include <stdio.h>void Permutation(char* str, char* begin);void Permutation(char* str){    if(str == NULL)        return;    Permutation(str, str);}void Permutation(char* str, char* begin) {    if(*begin == '\0') {        printf("%s\n", str);        return;    }for (char* c = begin; *c != '\0'; ++c) {char temp = *c;*c = *begin;*begin = temp;Permutation(str, begin + 1);temp = *c;*c = *begin;*begin = temp;}}void Test(char* pStr){    if(pStr == NULL)        printf("Test for NULL begins:\n");    else        printf("Test for %s begins:\n", pStr);    Permutation(pStr);    printf("\n");}int main(void){    char str[] = "abc";    Test(str);    return 0;}



输出:

Test for abc begins:abcacbbacbcacbacab




6 0
原创粉丝点击