#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <stdbool.h>

#define STRSWITCH(s) do{\
    bool flag_=false;\
    char*switchstr_=(s);\
    int switchstrlen_=strlen(switchstr_);{{

#define STRCASE(s) \
    }}{\
        char*casestr_=(s);\
        int casestrlen_=strlen(casestr_);\
        flag_=flag_||switchstrlen_==casestrlen_&&!strncmp(switchstr_,casestr_,casestrlen_);\
        if(flag_){

#define STRSWITCHDEFAULT }}{{
#define ENDSTRSWITCH }}}while(0);

void test(char *str)
{
    printf("case \"%s\":\n", str);
    STRSWITCH (str)
    STRCASE("hui")
        puts("hui");
    STRCASE("pizda")
        puts("pizda"); break;
    STRCASE("G-goorda")
        puts("G-goorda");
    STRSWITCHDEFAULT
        puts("default");
    ENDSTRSWITCH
}

int main(void)
{
    test("govno");
    test("hui");
    test("pizda");
    test("G-goorda");
    return 0;
}