我正在阅读 Stephan Prata 的 C Primer Plus 第 6 版第 14 章中的字符串函数。它说
一些 pre-ANSI 系统使用 strings.h 代替,而其他系统可能完全没有字符串头文件。
所以,我认为如果我在任何现代 C 编译器上编译以下程序,它不应该工作。
#include <stdio.h>
#include <strings.h> // note here strings.h not string.h
void fit(char *c,unsigned u);
int main(void)
{
char msg[]="Things should be as simple as possible," " but not simpler.";
puts(msg);
fit(msg,38);
puts(msg);
puts("Let's look at some more of the string.");
puts(msg + 39);
return 0;
}
void fit(char *c,unsigned u)
{
if(strlen(c)>u)
c[u]='\0';
}
我在 orwell Dev C++ IDE & Codeblocks 13.12 上试过它,它编译并运行良好。为什么我没有收到错误?
string.h 和 strings.h 有什么区别?