c语言:从文件f1.txt读入一行字符,将其中所有小写字母改写为大写字母,然后输出到f2.txt中?

救救命救救命明天就要交作业了呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜

程序如下:
#include <stdio.h>
int main()
{
FILE *fin, *fout;
char s[1024]; //假定一行不超过1024个字符
int i;
if ( (fin = fopen("f1.txt","r"))==NULL){
printf("Can not open f1.txt\n"); return 0;
}; //作为读,打开文件
fgets( s,1024,fin); //读一行
fclose(fin); //关文件
if ( (fout = fopen("f2.txt","w"))==NULL){
printf("Can not open f2.txt\n"); return 0;
}; //作为写,打开文件
for (i=0;i<strlen(s);i++){
if (s[i]>='a' && s[i]<='z') s[i]=s[i]-'a'+'A';}; //若小写字母,则改大写,否则不变
fprintf(fout,"%s",s); //输出
fclose(fout); //关文件
printf("output in f2.txt\n");
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-26
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{/*主程序入口*/
char st[200][80];
int i=0,n,j;
FILE * myf1,*myf2;
/*变量声明*/
myf1=fopen("f1.txt","r");/*打开文件*/
myf2=fopen("f2.txt","rw+");/*打开文件*/
if(myf1==NULL) return 0;
if(myf2==NULL) return 0;
while(fgets(st[i],80,myf1)!=NULL){
i++;
}
for(j=0;j<i;j++)
for(n=0;st[j][n];n++){
if(st[i][n]>='a'&&st[i][n]<='z')
st[i][n]-=32;
}
for(n=0;n<i;n++)
fprintf(myf2,"%s\n",st[n]);
fclose(myf1);/*关闭文件*/
fclose(myf2);/*关闭文件*/
for(n=0;n<i;n++)
printf("%s\n",st[n]);

}
第2个回答  2020-12-26

#include <stdio.h>


int main()

{

    FILE *f1,*f2;

    char c;

    if((f1=fopen("f1.txt","r")))

    {

        f2=fopen("f2.txt","w");

        while(!feof(f1))

        {

            c=fgetc(f1);

            if(c>='a'&&c<='z')

            {

                fputc(c,f2);

            }

        }

        fclose(f2);

        fclose(f1);

    }

    return 0;

}

本回答被网友采纳
相似回答