【发布时间】:2016-07-24 02:16:06
【问题描述】:
我遇到了这样的一行
char* template = "<html><head><title>%i %s</title></head><body><h1>%i %s</h1> </body></html>";
在阅读代码以实现 Web 服务器时。
我很好奇,因为我以前从未见过这样的字符串 - 模板是否指定了一种特殊类型的字符串(我只是在这里猜测,因为它在我的 IDE 上突出显示)?另外,strlen() 如何处理这样的事情?
谢谢
【问题讨论】:
-
这似乎是正常的字符串。将字符串解释为模板将是代码其他部分的任务,
strlen()将正常工作。 -
那么 %i 和 %s 用 strlen() 算作 2 个字符吗?
-
template只不过是变量的名称。 (它是 C++ 中的关键字,而不是 C 中的关键字。) -
strlen()将按原样给出字符串的长度,而不特别处理%。如果它们是printf()或类似的格式说明符,那么从它生成的格式化输出可能会更长(但该输出不会是相同的字符串)。