C语言(不是C#)实现获得子字符串

来源:百度知道 编辑:UC知道 时间:2024/05/28 02:50:48
写一个函数,求一个字符串的所有的子字符串,并写出测试用例。
如ABCD,有A,B,C,D,AB,BC,CD,ABC,BCD

有思想的给出思想,如果有代码最好,要求运算效率不能偏低
回答者:飘渺世间天 - 参将 八级 是目前唯一的得分者 非常不错的算法

还有哪位英雄有好的代码不,赶快发出来啦
就快结帖了

#include<stdio.h>
#include<string.h>
void main()
{
char a[20];
int i=1,j=0,k,x=0;
char *p=NULL;
gets(a);
k=strlen(a);
while(i<k)
{
p=a;x=0;
while(x+i<=k)
{
p=a+x;
for(j=0;j<i;j++)
{
printf("%c",*p);
p++;
}
printf("\t");
x++;
}
printf("\n");
i++;
}

}

#include <iostream>
using namespace std;
string* substring(string str){
int end;
long str_len=str.length();
long count=-1;
long counter_size=(2+str_len)*(str_len-1)/2;
string* counter=new string[counter_size+1];

for (int length=1; length <= str_len-1; length++){
for (int begin=0; begin <= str_len-length; begin++){
end = begin + length - 1;