C语言库函数中strlen、strcmp、strcpy、strcat是我们非常常用的一些字符串处理函数,我们不得不了解一下内部的工作原理,有必要思考如果没有这些库函数我们该如何实现这些函数的功能。以深入的了解字符串内部的处理机制。本文就记录了一些前辈们留下的非常简练的实现。

继续阅读

指针数组我们一般用来存放一组字符串,来进行比较或储存的作用,而操作指针数组可以通过两种方式,一种则是直接使用下标方式,而另外一种,则可以通过二级指针。我们可以通过一个非常简明的例子来了解他们之间的关系。继续阅读

fseek可以移动FILE结构体中指向文件位置的指针指向,其第三个参数可以让我们非常灵活的将指针移动要任意自己需要的位置。而ftell则可以获取当前指针位置,返回一个long大小的数值,我们可以使用fseek将指向文件的指针移动到文件末尾,然后使用ftell取当前指针的位置,就可以得到一个文件的大小。具体实现如下:

继续阅读

通过Windows的CTRL+C、CTRL+V可以非常方便的复制文件,实际内部也一样是通过读写文件来完成的,通过Windows的命令行我们也可以使用copy.exe的相关命令来复制文件。本文就模仿copy.exe程序制作一个文件复制的程序。具体代码如下:

继续阅读

fread、fwrite两个函数一般用于操作二进制文件,不适用处理文本文件,当然如果你非要用这两个函数来处理也没什么问题,只不过会相对麻烦一些,比如它不会给你读取出来的字符串末尾添加\0(fgets会在传入的buf末尾增加\0),也不会有什么结束标记判断。所以如果你如果用fread处理文本文件是非常苦恼的一件事情,一不小心就可能出错。继续阅读

上一篇文章中介绍了fgets函数,可以一次获取一行数据到一个buffer中。对应也有一个函数是fputs,可以一次将一行数据写入到一个文件中,同样,在写入之前要以w方式打开被写入的文件,具体代码如下:

继续阅读

上一篇文章我们介绍过一次性读取一个字符,这样读取更加精确,但有不同的需求,比如需要一次读取一行或一段。本文将介绍如何一次读取一行内容,提供了两个函数,并分析了两个函数的区别。继续阅读