2

我正在阅读 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 有什么区别?

4

0 回答 0