I don't think you're seeing the requirement completely. The problem promises only that the output buffer will be big enough to hold the output. You have made it huge. I tried your code on an input of
a1b1c6 with the required output space of 8 characters (plus 1 for the C null character), and it printed cccccc and stopped. Last night I realized there is another approach that will work in all cases, so I deleted my post. I guess it wasn't deleted on the server in your part of the world. You all can certainly work it out. You can't just copy the input to a predetermined place in the buffer before processing it. It needs to be placed carefully, and it needs to be processed from both ends to a certain point in the middle. On Mar 20, 7:32 am, atul anand <atul.87fri...@gmail.com> wrote: > using Gene logic , but we need to take care of number with more than 1 > digits , so updated gene's code is as follows :- > > #include<stdio.h> > #define MAX 1000 > > int copy(char *str,int len) > { > int max_len=MAX-1,i; > for(i=len-1;i>=0;i--) > { > str[max_len]=str[i]; > max_len--; > } > return max_len+1; > > } > > void runLength(char *str) > { > unsigned int j,k=1,loop=0,res_len=0; > int i,n_start; > char c; > /*copying input to the end of the buffer*/ > n_start=copy(str,strlen(str)); > > for(i=MAX-1;i>=n_start;i--) > { > if(str[i]>='0' && str[i]<='9') > { > continue; > } > else > { > sscanf(&str[i],"%c%d",&c,&loop); > for(j=0;j<loop;j++) > { > str[res_len]=c; > res_len++; > } > } > } > str[res_len]='\0'; > printf("\nDecoded Msg = %s\n",str); > > } > > int main() > { > char str[MAX]; > memset(&str,0,MAX); > printf("\nEnter String = "); > scanf("%s",str); > runLength(str); > > return 1; > > > > > > > > } -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.