题目:给定一个字符串,输出其所有连续子串,如:给定字符串为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;
}