I want to return a char array to the main() function, but its returning garbage value.
#include<stdio.h>
//#include<conio.h>
#include<string.h>
char* strtrmm();
int main()
{
char str1[100],c1[100];
printf("\n Enter the string:");
gets(str1);
//strtrmm(str1);
printf("%s",strtrmm(str1)); //gives garbage value
//printf("%s",c1);
}
char* strtrmm( char str1[])
{
char str[100],sub[100],s1[100],s11[100],*c1="a";
int i,i1=0,j,k,l,f=0,g=0,m,h,v,count=0;
strcpy(str,str1);
printf("\n Enter the substring:");
gets(sub);
l=strlen(sub);
m=strlen(str);
printf("%d %d",l,m);
for(i=0;str!='\0';i++)
{
k=i;
j=0;
while(sub[j]!='\0')
{
if(str[k]==sub[j])
{
g++;
if(g==l)
{
f=1;
h=i;
}
}
else if(str[k]!=sub[j])
{
break;
}
j++;
k++;
}
}
if(f==1)
{
printf("\n sub string is found\n\n\n");
for(i=0;i<m;i++)
{
if(i<h)
{
printf("%c",str);
s1[i1]=str;
i1++;
count++;
}
else if(i>h&&i<(h+l))
continue;
else if(i>=(h+l))
{
printf("%c",str);
s1[i1]=str;
i1++;
count++;
}
}
printf("\n %d \n",count);
}
else if(f==0)
{
printf("\n substring not found:");
}
/* for(i=0;i<count;i++)
{
s11=s1;
}
*/
c1=s1;
printf(" ret:%s \n ",c1);
return c1;
// getch();
//return(0);
}