首页 > 代码库 > 编程算法 - 字符串的排列 代码(C)
编程算法 - 字符串的排列 代码(C)
字符串的排列 代码(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* pStr, char* pBegin); void Permutation(char* pStr) { if(pStr == NULL) return; Permutation(pStr, pStr); } void Permutation(char* pStr, char* pBegin) { if(*pBegin == ‘\0‘) { printf("%s\n", pStr); } else { for(char* pCh = pBegin; *pCh != ‘\0‘; ++ pCh) { char temp = *pCh; *pCh = *pBegin; *pBegin = temp; Permutation(pStr, pBegin + 1); temp = *pCh; *pCh = *pBegin; *pBegin = 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: abc acb bac bca cba cab
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。