c中的问题有一个空字符常量错误

eli*_*aud 1 c

我在 C 中遇到了问题。控制台说有一个空字符常量。这是一个知道一个人有多少本书的小程序。这是代码:

int main ()
{
    int nb_books;
    printf("How much books have you got?");
    scanf("%d",&nb_books);
    printf("You have %d book%c!\n",nb_books, (nb_books==0||nb_books==1)?'':'s');
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

问题是%cs当有几本书时,我想放一个。就这样!

Rem*_*eau 5

没有“空”字符,所以''是非法的。

使用%s代替%c,然后您可以使用长度为 0 的字符串,例如:

printf("You have %d book%s!\n", nb_books, (nb_books==1)?"":"s");
Run Code Online (Sandbox Code Playgroud)

(你应该输出s“0 book s ”)

  • 对于代码高尔夫球手,`"s" + (nb_books == 1)` (2认同)