将值分配给名为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);