#include <iostream>
#include <sys/time.h>
void findAllSubstrings(const char *s)
{
int x=0;
while(*(s+x)){
for(int y=0; y<=x; y++)
std::cout<<*(s+y);
std::cout<<'\n';
x++;
}
if(*(s+1))
findAllSubstrings(s+1);
else
return;
}
void findAllSubstrings2(const char *s)
{
while(*s)
{
int x=0;
while(*(s + x))
{
for(int y = 0; y <= x; y++)
std::cout << *(s + y);
std::cout << "\n";
x++;
}
s++;
}
}
int main()
{
timeval t1,t2;
gettimeofday(&t1,0);
for(int t = 0; t < 1000; t++)
findAllSubstrings("abc");
gettimeofday(&t2,0);
std::cout << "\n\n1: Time per call: "
<< ((t2.tv_sec-t1.tv_sec)*1000000 + t2.tv_usec-t1.tv_usec) / 1000.0
<< " us\n";
gettimeofday(&t1,0);
for(int t = 0; t < 1000; t++)
findAllSubstrings2("abc");
gettimeofday(&t2,0);
std::cout << "\n\n2: Time per call: "
<< ((t2.tv_sec-t1.tv_sec)*1000000 + t2.tv_usec-t1.tv_usec) / 1000.0
<< " us\n";
return 0;
}