039:在main函数中创建一个文件,将键盘输入的字符串写入文件中。打开该文件,读出字符串,将字符串中下标为奇数且ASCIT码值为偶 数的字符删除,串中剩余字符所形成的新串存 放到另一个文件中。
时间: 2023-11-27 20:24:39 浏览: 94
去掉重复的字符串及在第一个字符串中删除在第二个字符串中出现的字符
下面是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp1, *fp2;
char str[100], ch;
int i = 0, j = 0;
fp1 = fopen("input.txt", "w"); // 创建并打开input.txt文件
if (fp1 == NULL) {
printf("无法创建文件!\n");
exit(1);
}
printf("请输入字符串:\n");
gets(str); // 读取键盘输入的字符串
fprintf(fp1, "%s", str); // 将字符串写入文件
fclose(fp1); // 关闭文件
fp1 = fopen("input.txt", "r"); // 打开input.txt文件
fp2 = fopen("output.txt", "w"); // 创建并打开output.txt文件
if (fp1 == NULL || fp2 == NULL) {
printf("文件打开失败!\n");
exit(1);
}
while ((ch = fgetc(fp1)) != EOF) { // 读取文件中的每个字符
i++;
if (i % 2 == 1 && ch % 2 == 0) {
continue; // 如果下标为奇数且ASCIT码值为偶数,则删除该字符
} else {
str[j++] = ch; // 否则将该字符存入新的字符串中
}
}
str[j] = '\0'; // 在新的字符串末尾添加结束符
fprintf(fp2, "%s", str); // 将新的字符串写入output.txt文件
fclose(fp1); // 关闭文件
fclose(fp2);
printf("操作完成!\n");
return 0;
}
```
程序中首先创建并打开了一个名为“input.txt”的文件,并将从键盘输入的字符串写入该文件。然后通过循环读取“input.txt”文件中的每个字符,判断其下标和ASCII码值是否符合要求,如果符合则删除该字符,否则将其存入新的字符串中。最后将新的字符串写入名为“output.txt”的文件中。注意,在对新的字符串操作后,需要在其末尾添加结束符。
阅读全文