如何输出字符窜的所有组合

例如“abc”输出a,b,c,ab,ac,bc,abc

#include<stdio.h>
void DFS(char str[],char ss[],int pos,int cnt,int n)
{
    if(n==pos)
    {
        ss[cnt]=‘\0‘;
        if(cnt!=0) printf("%s\n",ss);
        return ;
    }
    ss[cnt]=str[pos];
    DFS(str,ss,pos+1,cnt+1,n);
    DFS(str,ss,pos+1,cnt,n);
}

int main()
{
    char str[]="abc";
    char ss[10];
    DFS(str,ss,0,0,3);
    return 0;
}

非递归

#include<stdio.h>

int main()
{
    char str[]="abc";
    int n=3;
    char ss[10];
    for(int i=1;i<(2<<n-1);i++)
    {
        int t=i;
        int cnt=0;
        while(t)
        {
            int x=t&1;
            if(x) printf("%c",str[cnt]);
            t>>=1;
            cnt++;
        }
        printf("\n");
    }
    return 0;
}

  

时间: 2025-01-06 02:33:16

如何输出字符窜的所有组合的相关文章

【Python学习之旅】---数据类型(数字、字符窜、列表、元组、字典、布尔值)

1.将字符窜转换为数字,即输出数据类型和数字 输出结果: 2.计算一个数字至少用几位二进制数来表示 输入结果: 3.将字符窜用2进制来表示并转换为整数 输出结果: 原文地址:https://www.cnblogs.com/chenyuxia/p/11877118.html

Linux ${}字符窜截取的方法汇总

Linux 字符窜截取的方法汇总 1.命令汇总 ${target-string#*sub-string} ${target-string##*sub-string} ${target-string%sub-string*} ${target-string%%*sub-string*} ---------------------------------------------------------------------------- ${target-string:start-index:st

C语言中以十六进制输出字符型变量会出现&#39;ffffff&quot;的问题

最近在做一个C的嵌入式项目,发现在C语言中用printf()函数打印字符型变量时,如果想采用"%x"的格式将字符型变量值以十六进制形式打印出来,会出现一个小问题,如下: C代码   char buf[10] = {0}; buf[0] = 0xbf; printf("%2x\n\n\n", buf[0]);            /*在终端将会显示成:ffffffbf*/ buf[1] = 0x7f; printf("%2x\n\n\n", bu

输入N个数,输出所有可能的排列组合(6+个小时啊,耶稣~)

输入N个数,输出所有可能的排列组合 一行代码一行泪...手都被发热的笔记本烤的不舒服了....6个多小时过去鸟...终于粗来鸟.... 昨天同学问到一个排列组合的问题,本身不会很难,原题是固定输入4个数字,例如1 2 3 4,输出所有可能的排列组合 暴力的话应该不难的.代码+debug,半个小时. 如果是输入N个数字呢? 先说简单的暴力方法,如果输入4个数字,输出所有的排列组合 代码比较短,也比较简单,没有很刻意的去把代码的风格写的好一点,所以数字常量什么的表介意.... /**********

输入字符,输出字符时加行号

问题描述: 可以标准输入一些字符,然后输出时,在每一行前面加上行号,每一行可以接受的字符没有限制. 代码实现: /*.c*/ #include <stdio.h> #include <stdlib.h> int main() { int ch = 0; int line = 0; int flag = 1;    //设定标志位,最后确定是否需要换行,打印行号 while((ch = getchar()) != EOF) { if(flag == 1) { flag = 0; li

Error: unterminated string literal。通常原因是输出字符str中包含换行符导致的。

1 s = s.replace("\n\r", "<br>  "); 2 s = s.replace("\r\n", "<br>  ");//这才是正确的! 3 s= s.replace("\t", "    "); 4 s =s.replace(" ", " "); ///这个按需要看自己是否要加, 我的不需要 也就没加

计蒜客:输出字符菱形、输出字符三角形

T1003 输出字符菱形 小蒜蒜最近学习了菱形(四边都相等的四边形). 现在她给了你一个字符,希望你能用它构造一个对角线长 55 个字符,倾斜放置的菱形. 输入格式 输入只有一行,包含一个字符. 输出格式 该字符构成的菱形. 输出时每行末尾的多余空格,不影响答案正确性 样例输入 * 样例输出 * *** ***** *** * #include<stdio.h> int main() { char c; scanf("%c",&c); printf("%5

Python字符窜取值

# coding:utf-8 msg = "hello world *te*st *?/ * / -*2ego2*n , -*= 123" #按索引取值 print(msg[0],type(msg))#取第一个值 print(msg[-1],type(msg))#取最后一个值 #按切片取值 print(msg[1:4],type(msg))#取固定范围值,顾头不顾尾:左闭右开:从前面取值; 从左往右,正向 print(msg[-3:-1],type(msg))#取固定范围值,顾头不顾尾

java中JTextPane使输出字符到指定的宽度换行,并将垂直滚动条的位置移动到输出的最后位置

SimpleAttributeSet set = new SimpleAttributeSet(); Document doc = tp.getStyledDocument(); FontMetrics fm = tp.getFontMetrics(tp.getFont());//得到JTextPane 的当前字体尺寸 int paneWidth = tp.getWidth();//面板的宽度 String text = new String(bt, 0, len); try { for(int