递归输出字符串

题目:给定一个字符串,输出其所有连续子串,如:给定字符串为abcd,则要输出的其全部连续子串为:a,b,c,d,ab,bc,cd,abc,bcd,abcd。

java方法一:

public class sub_string {  
    public static void main(String [] agrs){  
        String str=new String() ;  
        str="abcd";  
        int L=str.length();  
        for ( int k = 1; k <= L; k++) {  
            for (int i = 0; i+k <= L; i++) {  
                String  a=str.substring(i,i+k).toString();  
                System.out.println(a);  
            }  
        }  
    }  
} 
c语言方法二:

#include <stdio.h>

void substrings(const char* src)
{
	char* p1 = src, *p2 = 0;
	while(*p1) {
		p2 = p1;
		while(*p2++) {
			printf("%.*s\n", p2-p1, p1);
		}
		++p1;
	}
}

int main(void) {
	char src[1024];
	//scanf("enter str: %s", src);
	sprintf(src, "abcd");
	substrings(src);
	return 0;
}

c语言方法三:

#include "stdio.h"
void AllSubstring(const char *str,int high)
{
	int i, j, k;
	if(!str)
		return;

for(i=0;i<=high;i++)
{
	for(j=i; j<=high;j++)
	{
		for(k = i; k<=j; k++)
			printf("%c", str[k]);
		printf("\t");
	} 
	printf("\n");
	}
}

int main(void) {
	AllSubstring("abcd",3);
	return 0;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值