star_sky 发表于 2020-2-24 23:06:35

%s 两边可以用双引号吗?


求助求助!为什么这个代码编译不了,代码从小甲鱼那复制来的。

#include <stdio.h>
#include <string.h>

int main()
{
      char str1[] = "love";
      char str2[] = "FishC";

      if (strlen(str1) - strlen(str2) < 0)
      {
                printf("字符串"%s"比字符串"%s"短!\n", str1, str2);
      }                //删除上面%s两边双引号就是正常编译
      else
      {
                printf("字符串"%s"比字符串"%s"长!\n", str1, str2);
      }

      return 0;
}

4goodworld 发表于 2020-2-24 23:19:11


#include <stdio.h>
#include <string.h>

int main()
{
        char str1[] = "love";
        char str2[] = "FishC";

        if (strlen(str1) - strlen(str2) < 0)
        {
                printf("字符串%s比字符串%s短!\n", str1, str2);
        }                //删除上面%s两边双引号就是正常编译
        else
        {
                printf("字符串%s比字符串%s长!\n", str1, str2);
        }

        return 0;
}
printf里面多了引号了

小笨笨难得糊涂 发表于 2020-2-25 00:08:46

正常不需要双引号,如果你一定要显示双引号的效果,可以用转义字符\"

major_lyu 发表于 2020-2-25 00:16:09

本帖最后由 major_lyu 于 2020-2-25 00:18 编辑

printf()函数里面只允许出现一对双引号表示格式化输出,如果你想在输出的字符中包含双引号,所要显示的双引号要用\进行转义
#include <stdio.h>
#include <string.h>

int main()
{
    char str1[] = "love";
    char str2[] = "FishC";

    if (strlen(str1) - strlen(str2) < 0)
    {
      printf("字符串\\" % s \\"比字符串\\" % s \\"短!\n", str1, str2);
    } //删除上面%s两边双引号就是正常编译
    else
    {
      printf("字符串\\" % s \\"比字符串\\" % s \\"长!\n", str1, str2);
    }

    return 0;
}

star_sky 发表于 2020-2-25 11:05:29

major_lyu 发表于 2020-2-25 00:16
printf()函数里面只允许出现一对双引号表示格式化输出,如果你想在输出的字符中包含双引号,所要显示的双引 ...

谢谢了
页: [1]
查看完整版本: %s 两边可以用双引号吗?