第11章练习
  1. 请写出两个函数,它们实现类似strspnstrcspn的功能,确定字符串里满足一定条件的最长前缀的长度,但判断的依据通过一个函数指针参数得到。该指针的实参应是以char为参数返回int值的函数(谓词),在char满足要求时返回非0值,不满足要求是返回0值。这种函数与标准库ctype.h里定义的字符分类函数类似。(注意,标准库ctype.h里的"字符分类函数"通常是用宏定义实现的,因此不能用于作为函数指针参数的实参。)


  2. 自己实现标准库函数strtok的功能。请给函数另起一个名字,以免与库函数冲突。(提示:请考虑使用静态局部变量)。


  3. 写一个函数,它有一个双精度数组参数和不定个数的整数参数,它能够根据所给的一组整参数值(作为数组元素下标)由数组里取出对应的元素,求出这些元素的和。


  4. 请设法只使用标准库函数getchar实现scanf的功能。


  5. 请设法只使用标准库函数putchar实现printf的功能。


  6. 试写一个C源程序的预处理程序。先完成处理#include命令(如果考虑系统头文件,那么就需要其他信息。可以只考虑当前目录下的文件包含问题)的工作,然后考虑简单宏命令的处理和条件编译的处理,最后考虑带参数宏定义的处理。