从一个文件中读取一篇英文文章,请将文章中所有单词首字母大写并存入另一个文件中。“单词”是指一串连续的字母。
void CapitalizeTheFirstLetter(FILE *in, FILE *out);
说明:参数 in 和 out 为指示两个文件的指针。函数从 in 所指文件中的读出数据,将结果写入 out 所指的文件中。
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void CapitalizeTheFirstLetter(FILE* in, FILE* out);
int main()
{
FILE* in, * out;
in = fopen("in.txt", "r");
out = fopen("out.txt", "w");
if (in && out)
{
CapitalizeTheFirstLetter(in, out);
}
else
{
puts("文件无法打开!");
}
if (in)
{
fclose(in);
}
if (out)
{
fclose(out);
puts("文件保存成功!");
}
return 0;
}
/* 请在这里填写答案 */
Spring Morning
translated by Xu Yuanchong
This spring morning in bed I am lying,
not awake till birds are crying.
After one night of wind and showers,
how many are the fallen flowers.
程序运行结束后,打开“out.txt”文件,查看文件内容。
Spring Morning
Translated By Xu Yuanchong
This Spring Morning In Bed I Am Lying,
Not Awake Till Birds Are Crying.
After One Night Of Wind And Showers,
How Many Are The Fallen Flowers.
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
void CapitalizeTheFirstLetter(FILE* in, FILE* out) {
char ch;
int flag = 0;
while ((ch = fgetc(in)) != EOF) {
if (flag == 0 && (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
if (islower(ch))
ch = toupper(ch);
flag = 1;
}
else if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
flag = 1;
else
flag = 0;
fputc(ch, out);
}
}
请编写函数,从文件中读取成绩不及格的学生信息,将结果写入另一个文件。
void FailStudent(FILE* in, FILE* out);
说明:
(1)参数in和out为指示两个文件的指针。函数从in所指文件中读出数据,将结果写入out所指的文件中。
(2)in所指文件中有很多行(不超过100行),每行对应一名学生的多个信息,以空格间隔,这些信息包括:学号(12位),姓名(不超过10个字符,且其中不含空格),三科成绩:数学,英语,C语言(均是<=100的非负整数)。
(3)函数要求,某科成绩不及格(<60)的学生,需要将其“学号 姓名 该科课程名”三部分内容写入out文件中,每行一个结果。其中,三门课程的课程名分别为:"Math","English","C"。
#include<stdio.h>
#define MAXN 100
struct student
{
long long id;
char name[MAXN];
int score[3];
};
void FailStudent(FILE* in, FILE* out);
int main()
{
FILE* in, * out;
in = fopen("in.txt", "r");
out = fopen("out.txt", "w");
if (in && out)
{
FailStudent(in, out);
}
else
{
puts("文件无法打开!");
}
if (in)
{
fclose(in);
}
if (out)
{
fclose(out);
puts("文件保存成功!");
}
return 0;
}
/* 请在这里填写答案 */
“in.txt”文件中保存的数据样例为:
202018010102 zhangsan 50 50 50
202026070420 hanmeimei 90 90 90
202116050331 lilei 50 90 100
202128060211 wangmazi 70 70 59
程序运行结束后,打开“out.txt”文件,查看文件内容。
202018010102 zhangsan Math
202018010102 zhangsan English
202018010102 zhangsan C
202116050331 lilei Math
202128060211 wangmazi C
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
void FailStudent(FILE* in, FILE* out)
{
struct student stu;
char course_names[3][10] = {"Math", "English", "C"};
while (fscanf(in, "%lld %s %d %d %d", &stu.id, stu.name, &stu.score[0], &stu.score[1], &stu.score[2]) != EOF)
{
for (int i = 0; i < 3; ++i)
{
if (stu.score[i] < 60)
{
fprintf(out, "%lld %s %s\n", stu.id, stu.name, course_names[i]);
}
}
}
}
最后致歉:没有什么思路提示,因为期末不考文件编程,我打算等2月初再写下思路,这篇文章,希望能帮到仅仅是需要救急的同学吧。如果有思路或者能看懂的,欢迎在评论区补充,谢谢大家