How do I concatenate const/literal strings in C?

前端 未结 17 1777
醉梦人生
醉梦人生 2020-11-21 23:45

I\'m working in C, and I have to concatenate a few things.

Right now I have this:

message = strcat(\"TEXT \", var);

message2 = strcat(strcat(\"TEXT          


        
17条回答
  •  野性不改
    2020-11-22 00:24

    This was my solution

    #include 
    #include 
    
    char *strconcat(int num_args, ...) {
        int strsize = 0;
        va_list ap;
        va_start(ap, num_args);
        for (int i = 0; i < num_args; i++) 
            strsize += strlen(va_arg(ap, char*));
    
        char *res = malloc(strsize+1);
        strsize = 0;
        va_start(ap, num_args);
        for (int i = 0; i < num_args; i++) {
            char *s = va_arg(ap, char*);
            strcpy(res+strsize, s);
            strsize += strlen(s);
        }
        va_end(ap);
        res[strsize] = '\0';
    
        return res;
    }
    

    but you need to specify how many strings you're going to concatenate

    char *str = strconcat(3, "testing ", "this ", "thing");
    

提交回复
热议问题