Q:

Can I concatenate numeric constant with string in C?

I have a very simple program, that is expected to take X characters of less from the user and print them back:
#include <stdio.h>
#define MAX_INPUT_LENGTH 8
#define HOME 1

int main()
{
    char vstup[MAX_INPUT_LENGTH];

    printf("Write something. But no more than "MAX_INPUT_LENGTH" characters.\n");
    scanf("%"MAX_INPUT_LENGTH"s", vstup);
    printf(vstup);

    system("pause");
    return 0;
}

Of course, my attempt with "blah"CONSTANT"blah" does not work. But there should be away to do it, shouldn't it? I thought constant are mostly just replaced pieces of text in the program, with only some basic logic.

A:

This works for me.
#include <stdio.h>

#define STR2(a) #a
#define STR(a) STR2(a)

#define MAX_INPUT_LENGTH 8

int main()
{
   char vstup[MAX_INPUT_LENGTH+1];

   printf("Write something. But no more than " STR(MAX_INPUT_LENGTH) " characters.\n");
   scanf("%" STR(MAX_INPUT_LENGTH) "s", vstup);
   printf("%s\n", vstup);

   return 0;
}

