【问题标题】:Why do we use 'strlen()' if 'printf()' itself returns the length of the string?如果 'printf()' 本身返回字符串的长度,为什么我们要使用 'strlen()'?
【发布时间】:2016-08-26 13:25:35
【问题描述】:

C 函数printf() 返回打印的字符数,那么strlen() 有何不同?

【问题讨论】:

  • 呃,因为 strlen() 返回字符串的长度而不打印它? BTW:请学习how to ask a good question
  • “用刀切鸡也能得到鸡蛋,我们为什么不这样做而不是让它下蛋呢?” – 错误,因为一个有副作用,另一个没有……?
  • 好的,谢谢。对新手的很好的解释。但我从没想过社区对初学者如此消极。我现在无法通过此帐户提出更多问题 :-(

标签: c printf string-length strlen


【解决方案1】:

正如 bub 所说,部分区别在于 strlen 不打印字符串,只返回它的长度。此外,虽然 printf() 将其参数解释为格式字符串 - 如果将值插入占位符,它最终打印的长度可能与给出的字符串的长度非常不同。

【讨论】:

  • 虽然这个问题非常不精确,但公平地说,只要stdin 没有问题,strlen(s)printf("%s", s) 将返回相同的值。 OP打算错误地使用printf的假设并不是基于问题中写的任何内容。
【解决方案2】:

strlen() 函数计算字符串的长度。 strlen 就是这样,但 printf() 发送格式化输出。

【讨论】:

    猜你喜欢
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 2014-07-22
    • 2012-07-18
    • 2019-06-07
    相关资源
    最近更新 更多