将值分配给名为answer的字符串时,我希望能够使用%d格式说明符。我尝试执行此操作,但是在运行程序时无法用整数替换格式说明符...
这是我的代码:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    const char *answer;
    int year;
    printf("Enter a year: \n");
    scanf("%d", &year);
    if ( (year % 400 == 0) || ( (year % 4 == 0) && !(year % 100 == 0) ) ){
        answer =  "%d does have a bissextus day", year;
    }
    else {
        answer = "%d doesn't have a bissextus day", year;
    }

    printf("%s\n", answer);

    return 0;
}


我也想知道在这种情况下使用const char *answer是否是一个不错的选择,如果不是,我想知道应该使用什么。

最佳答案

您可以使用snprintf

char answer[34];
// ...
snprintf(answer, 34, "%d does have a bissextus day", year);

07-26 06:24