【问题标题】:How to output a string, the result is (null)? [duplicate]如何输出一个字符串,结果是(null)? [复制]
【发布时间】:2017-08-20 22:41:26
【问题描述】:

如何输出一个指针字符串,打印结果是“(null)”,就像输出一个char一样?

【问题讨论】:

  • 不知道你在问什么。 char *str = "(null)";???
  • char str 不是指针,但 NULL 是空指针宏。当您尝试使用 %s 打印 str 的内容时,您有未定义的行为,它需要一个 string(即,以 null 结尾的字符数组)。而对于char *str = "\0",首先不需要\0——只需将char *str = "" 用于空字符串即可;其次,这不打印空格;它不打印任何内容(在格式字符串中的 \n 之前。)
  • "我看不到输出,我认为这是一个空格。"不,它根本没有输出,因为你给了它一个长度为 0 的字符串。
  • 谢谢你们!我只是想写一个类似strstr()的函数,但是我不知道返回一个指向main的字符串指针,返回值打印为“(null)”。
  • 从 C 初学者书开始。

标签: c linux gcc


【解决方案1】:
printf("%s\n", *str ? str : "(null)");

如果str指向的第一个字符是'\0',上面会打印(null)。否则,它将打印 str 指向的字符串。

处理案件:

char *str = NULL;

...使用:

printf("%s\n", (str && *str)?str:"(null)");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多