c语言代码 字符全排列
时间: 2023-08-30 09:09:07 浏览: 145
以下是一个使用递归算法实现的C语言代码,可以输出给定字符串的字符全排列:
```c
#include <stdio.h>
#include <string.h>
void swap(char* a, char* b) {
char temp = *a;
*a = *b;
*b = temp;
}
void permute(char* str, int l, int h) {
int i;
if (l == h) {
printf("%s\n", str);
}
else {
for (i = l; i <= h; i++) {
swap((str+l), (str+i));
permute(str, l+1, h);
swap((str+l), (str+i)); // backtrack
}
}
}
int main() {
char str[100];
printf("Enter a string: ");
scanf("%s", str);
int n = strlen(str);
permute(str, 0, n-1);
return 0;
}
```
输入一个字符串后,程序会输出该字符串的所有字符全排列。注意,这里使用了递归算法来实现,具体思路是:每次固定字符串中的一个字符,然后递归地对剩下的字符进行全排列,直到字符串中所有的字符都被固定为止。
阅读全文