c语言:使用指针实现字符传送,从zifu.txt文件中读取任意长度的字符,要求每3个字符中存放一个星号,输出并存入"jieguo.txt"文件。例如:abcdefg, 输出 abc*def*g
时间: 2024-03-25 16:40:07 浏览: 53
好的,我来给你写一个代码,实现你的需求。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 10000 // 最大字符数
int main()
{
char str[MAX_LEN];
char *p = str;
int i = 0;
// 打开文件
FILE *fp_in = fopen("zifu.txt", "r");
FILE *fp_out = fopen("jieguo.txt", "w");
// 读取文件内容
while ((*p = fgetc(fp_in)) != EOF && i < MAX_LEN) {
i++;
p++;
}
*p = '\0'; // 字符串结尾
// 输出到文件并控制星号的位置
int cnt = 0;
p = str;
while (*p != '\0') {
if (cnt % 3 == 2) {
fputc('*', fp_out);
}
fputc(*p, fp_out);
cnt++;
p++;
}
// 关闭文件
fclose(fp_in);
fclose(fp_out);
return 0;
}
```
这个程序的思路比较简单,先打开输入和输出文件,然后读入文件内容,并在每3个字符后插入一个星号,最后输出到文件中。需要注意的是,为了避免读入过多字符导致数组溢出,我们需要限制字符数的最大值,并在读入字符串末尾加上字符串结尾符号 `\0`。
阅读全文