我可以在C中将数字常量与字符串连接起来吗?

时间:2014-04-23 17:18:05

标签: c string

我有一个非常简单的程序,预计会从用户那里获取较少的 X 字符并将其打印回来:

#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;
}

当然,我对"blah"CONSTANT"blah"的尝试不起作用。但应该离开去做,不应该吗?我认为常量大多只是程序中被替换的文本片段,只有一些基本逻辑。

2 个答案:

答案 0 :(得分:6)

这适合我。

#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;
}

答案 1 :(得分:-1)

这是我的版本:

int max;
char frmt[10];

memset( frmt, 0, sizeof( frmt ) );

printf( "Enter a number:" );
scanf( "%d", &max );

char vstup[max];

printf( "Write something. But no more than %d characters.\n", max );

frmt[0] = '\%';
sprintf( frmt + strlen( frmt ), "%ds", max );

scanf( frmt, vstup );
printf( vstup );