用C语言编写程序:文件一的内容复制到文件二,并且复制过去后小写变成大写

如题所述

#include<stdio.h>
void main()
{
FILE *fp,*fp2;
charch;
if((fp=fopen("file1.txt","w+"))==NULL)
{
printf("打开文件错误\n");
exit(1);
}
printf("请输入字符以回车结束\n");
ch=getchar();
while(ch!='\n')
{
putc(ch,fp);
ch= getchar();
}
rewind(fp);
if((fp2=fopen("file2.txt","w+"))==NULL)
{
printf("打开文件错误\n");
exit(1);
}
ch=fgetc(fp);
while(ch!=EOF)
{
if(ch>='a'&&ch<='z')
ch-=32;
fputc(ch,fp2);
ch=fgetc(fp);
}
rewind(fp2);
ch=fgetc(fp2);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp2);
}
fclose(fp);
fclose(fp2);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-22
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>int main(int argc,char * argv[])
{
FILE * fp1,*fp2;
char ch; if(argc!=3){
printf("file_cope file1 fiel2\n");
exit(1);
} if((fp1=fopen(argv[1],"r"))==NULL){
printf("file open error\n");
exit(2);
}
fp2=fopen(argv[2],"a"); while((ch=fgetc(fp1))!=EOF){
if(islower(ch))
ch=toupper(ch);
printf("%c",ch);
putc(ch,fp2);
}
fclose(fp1);
fclose(fp2); return 0;
}
第2个回答  2013-11-22
#inlude<stdio.h>{char str1[100],str2[50];</p><p> int i;</p><p> gets(str2);</p><p> strcpy(str1,str2);</p><p> for(i=0;str1[i]!='\0';i++;)</p><p> if(str1[i]>='a'&&str1[i]<='z')</p><p> str1[i]=str1[i]+32;</p><p>puts(str1);</p><p>getch();</p><p>}
第3个回答  2013-11-22
charch应该改为char ch运行才正确
相似回答