用c语言使用指针实现字符传送,从zifu.txt文件中读取任意长度的字符,要求每3个字符中存放一个星号,输出并存入"jieguo.txt"文件。例如:abcdefg, 输出 abc*def*g
时间: 2024-03-26 09:36:08 浏览: 13
好的,我来解答你的问题。
首先,我们需要打开文件并读取其中的字符。这可以使用标准库函数 `fopen()` 和 `fgetc()` 来实现。具体的代码如下:
```c
FILE *fp_in = fopen("zifu.txt", "r");
char c;
while ((c = fgetc(fp_in)) != EOF) {
// 处理每个字符
}
fclose(fp_in);
```
接下来,我们需要使用指针来处理字符数组。我们可以定义一个指向字符数组的指针,并使用 `malloc()` 函数来分配内存。具体的代码如下:
```c
char *str = (char*)malloc(sizeof(char) * MAX_LENGTH);
// 读取字符到 str 中
// 处理字符数组
free(str);
```
在处理字符数组时,我们可以使用指针来遍历数组,并在每 3 个字符处插入一个星号。具体的代码如下:
```c
int i = 0;
while (*(str + i) != '\0') {
if (i % 3 == 2) {
// 在每 3 个字符处插入星号
printf("*");
}
printf("%c", *(str + i));
i++;
}
```
最后,我们需要将处理后的字符数组写入到文件中。这可以使用标准库函数 `fopen()` 和 `fputc()` 来实现。具体的代码如下:
```c
FILE *fp_out = fopen("jieguo.txt", "w");
int i = 0;
while (*(str + i) != '\0') {
if (i % 3 == 2) {
// 在每 3 个字符处插入星号
fputc('*', fp_out);
}
fputc(*(str + i), fp_out);
i++;
}
fclose(fp_out);
```
综上所述,完整的代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LENGTH 100
int main() {
FILE *fp_in = fopen("zifu.txt", "r");
char c, *str = (char*)malloc(sizeof(char) * MAX_LENGTH);
int i = 0;
while ((c = fgetc(fp_in)) != EOF) {
*(str + i) = c;
i++;
}
*(str + i) = '\0';
fclose(fp_in);
i = 0;
while (*(str + i) != '\0') {
if (i % 3 == 2) {
// 在每 3 个字符处插入星号
printf("*");
}
printf("%c", *(str + i));
i++;
}
FILE *fp_out = fopen("jieguo.txt", "w");
i = 0;
while (*(str + i) != '\0') {
if (i % 3 == 2) {
// 在每 3 个字符处插入星号
fputc('*', fp_out);
}
fputc(*(str + i), fp_out);
i++;
}
fclose(fp_out);
free(str);
return 0;
}
```
希望我的回答对你有所帮助!
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)