sscanf doesnt seem to capture the correct parts of my strings

I’ve tried to run this:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char a[1000];
void eliminatesp() {
    char buff1[1000], buff2[1000];
    LOOP: sscanf(a,"%s %s",buff1,buff2);
    sprintf(a,"%s%s", buff1, buff2);
    for(int i=0; i<strlen(a); ++i) {
        if(a[i]==' ') goto LOOP;
    }
}
void eliminateline() {
    char buff1[1000]; char buff2[1000];
    LOOP: sscanf(a,"%s\n\n%s",buff1,buff2);
    sprintf(a,"%s\n%s", buff1, buff2);
    for(int i=0; i<strlen(a)-1; ++i) {
        if(a[i]=='\n'&&a[i+1]=='\n') goto LOOP;
    }
}
int main() {sprintf(a,"%s\n\n%s", "hello world","this is my program, cris"); 
    eliminatesp();
    eliminateline();
    printf("%s",a); return 0;
    return 0;
}

but the output was:

hello world
world

How can I correct it? I was trying to remove spaces and empty lines.

sscanf doesnt seem to capture the correct parts of my strings