在main函数中创建一个文件,将键盘输入的字符串写入文件中。打开该文件,读出字符串。将字符串从指定下标p处开始的前q个字符(包括p处字符,q≤p+1)复制到字符串的结尾,形成的新串保存到另一个文件中。比如,abcdefg,从下标3处开始的前2个字符复制到字符串的结尾,得新串:abcdecd。要求:p和q均由键盘输入。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char filename[100];
char str[1000];
int p, q;
printf("请输入要创建的文件名(包括路径):");
scanf("%s", filename);
// 打开文件,准备写入
FILE *fp = fopen(filename, "w");
if (fp == NULL) {
printf("文件创建失败!\n");
return 1;
}
printf("请输入要写入的字符串:");
scanf("%s", str);
// 将字符串写入文件
fprintf(fp, "%s", str);
// 关闭文件
fclose(fp);
// 打开文件,准备读取
fp = fopen(filename, "r");
if (fp == NULL) {
printf("文件打开失败!\n");
return 1;
}
// 读取文件内容到字符串中
fgets(str, 1000, fp);
// 关闭文件
fclose(fp);
// 输入p和q
printf("请输入p和q:");
scanf("%d %d", &p, &q);
// 复制字符串
int len = strlen(str);
char new_str[1000];
strcpy(new_str, str);
for (int i = 0; i < q; i++) {
new_str[len - q + i] = str[p - q + i + 1];
}
new_str[len - q + q] = '\0';
// 打开文件,准备写入新字符串
printf("请输入要创建的新文件名(包括路径):");
scanf("%s", filename);
fp = fopen(filename, "w");
if (fp == NULL) {
printf("文件创建失败!\n");
return 1;
}
// 将新字符串写入文件
fprintf(fp, "%s", new_str);
// 关闭文件
fclose(fp);
printf("处理完毕!\n");
return 0;
}