C语言实现输入一个字符串后打印出该字符串中字符的所有排列

 更新时间:2014年09月16日 16:39:42   转载 投稿:shichen2014  
这篇文章主要介绍了C语言实现输入一个字符串后打印出该字符串中字符的所有排列的方法,是数学中非常实用的排列算法,需要的朋友可以参考下

本文实例讲述了C语言实现输入一个字符串后打印出该字符串中字符的所有排列的方法,属于数学里的排列问题。是一个很实用的算法技巧。分享给大家供大家参考。具体实现方法如下:

例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。

C语言实现代码如下:

/* 
* Copyright (c) 2011 alexingcool. All Rights Reserved. 
*/ 
#include <iostream>
#include <algorithm>

using namespace std;

char array[] = {'a', 'b', 'c'};
const int size = sizeof array / sizeof *array;

void Perm(char *array, int pos, int last) 
{ 
 if (pos == last) {
 copy(array, array + size, ostream_iterator<char>(cout, ""));
 cout << endl;
 } 
 else { 
 for(int i = pos; i <= last; i++) { 
  swap(array[i], array[pos]); 
  Perm(array, pos + 1, last); 
  swap(array[i], array[pos]); 
 } 
 }
}

void main()
{
 Perm(array, 0, 2);
}

希望本文所述实例对大家C程序算法设计的学习有所帮助。

相关文章

  • C语言完美实现动态数组代码分享

    C语言完美实现动态数组代码分享

    本文给大家分享的是一则使用C语言实现动态数组的代码,完美解决内存溢出以及内存回收问题,有需要的小伙伴可以参考下。
    2016-02-02
  • 基于C++实现kinect+opencv 获取深度及彩色数据

    基于C++实现kinect+opencv 获取深度及彩色数据

    本文的主要思想是Kinect SDK 读取彩色、深度、骨骼信息并用OpenCV显示,非常的实用,有需要的小伙伴可以参考下
    2015-12-12
  • C语言学生学籍管理系统课程设计

    C语言学生学籍管理系统课程设计

    这篇文章主要介绍了C语言学生学籍管理系统课程设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C++基于对话框的程序的框架实例

    C++基于对话框的程序的框架实例

    这篇文章主要介绍了C++基于对话框的程序的框架,以实例形式讲述了C++对话框程序框架,有助于深入理解基于C++的Windows程序设计,需要的朋友可以参考下
    2014-10-10
  • C++数据结构与算法之判断一个链表是否为回文结构的方法

    C++数据结构与算法之判断一个链表是否为回文结构的方法

    这篇文章主要介绍了C++数据结构与算法之判断一个链表是否为回文结构的方法,结合实例形式分析了回文结构并结合实例给出了C++判断回文的操作技巧,需要的朋友可以参考下
    2017-05-05
  • C++中构造函数与析构函数的调用顺序详解

    C++中构造函数与析构函数的调用顺序详解

    C++ 语言一直被批评太复杂了,很多细节的地方需要仔细推敲,甚至其构造函数和析构的调用顺序也成为了一个让人迷惑的问题,在此我做了简单的总结。这篇文章主要介绍了C++中构造函数与析构函数的调用顺序,需要的朋友可以参考借鉴。
    2017-01-01
  • 简单谈谈C++中指针与引用的区别

    简单谈谈C++中指针与引用的区别

    指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法
    2017-04-04
  • C++输出斐波那契数列的两种实现方法

    C++输出斐波那契数列的两种实现方法

    以下是对C++中输出斐波那契数列的两种实现方法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-10-10
  • C++中对C语言结构体用法的扩充

    C++中对C语言结构体用法的扩充

    今天小编就为大家分享一篇关于C++中对C语言结构体用法的扩充,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C语言学生成绩管理系统设计

    C语言学生成绩管理系统设计

    这篇文章主要为大家详细介绍了C语言学生成绩管理系统设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01

最新评论