1) post your code properly and not to a locked pdf document(copy forbidden)
2) int main() never void!!!
3) printf("Enter the input string"); not prinft
4) for (i=4;i<l{
then you say tmp[i+3]==...
last value of i=l-1 so i+3=l-1+3=l+2
but l=strlen(temp) so last value of temp is temp[l-1]
all this result segmentation fault!
the correct for-->for (i=4;i<l-3;i++){

Sir i want to know when the return types to main functions are must be changed

Click to expand...

Never. main always returns int, and you should return either the constant EXIT_SUCCESS, or the value 0, unless you have a good reason for doing otherwise (for example if you want to return an error code to a calling script).

There are exceptions for some compilers, for example the MikroElektronika compilers typically take void for main, but that's because there's nothing to return to: when main returns, the PIC chip has nothing else to do but halt. Maybe OS writers get to use void main too, for the same reason.

Valid main prototypes unless you have a good *technical* reason to use otherwise, are therefore: