C语言中文字的写入怎么办

我想利用fprintf把文件中查找出来的汉字写入另外一个文件,但是会出现乱码问题,怎么处理

可能你读取到的是unicode字符串,而写入到了ansi格式的文件中

如果你确认查找汉字的功能没有问题,那就是汉字编码的问题了。
你查找时,使用的是什么编码呢?一般 Unicode 或 UTF-8 比较多,具体看你的源字符串是什么编码格式。
如果不是 ANSII,则在定入文件时,需要增加相应的文件头,Unicode 为 十六进制表示为FF FE;UTF-8 编码文件头,十六进制表示为EF BB BF。
具体其它格式,请参考:按行读取ANSI、UNICODE 、UNICODE big endian、UTF-8四种文本文

或者,在代码中将非 ANSII 的编码统一转成 ANSII,然后再存入文件,这样就不有加编码标识的头。

汉字统一用UTF8编码,或者UNICODE编码来写入,读取文件,这样就不容易出错,不然不同字符集编码解码就会出问题

fprintf(fp,"%c ", * (chinese+i));
%c 后面是一个空格吗??
本来一个汉字是占两个字节的,你加了一个空格之后两个字节就不连续了,于是就是汉字的低字节加0x20,汉字高字节加0x20,0x20是空格,,所以你所有的汉字都被你自己改变了,%c 后面是空格吗、

输入前进行编码格式转换就OK了,不用想这么多