【发布时间】:2020-05-03 12:06:32
【问题描述】:
你能告诉我我可以对我的代码做哪些调整或任何简化吗?什么不应该 我再说一遍,我应该改变什么?此代码将每个单词转换为大写,如果您发现一些问题,请编写以修复它))
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(){
FILE * fPtr, *fPtr1;
int c; /*to store characters*/
char filename[20];
char filename2[20] = "temp.txt";
printf("Enter name of file: ");
scanf("%19s%*c",filename);
fPtr = fopen(filename, "r");
fPtr1 = fopen(filename2, "w");
c = fgetc(fPtr);
while(c!=EOF){
if(c!='\n'){
if(islower(c)){
fputc(c-32,fPtr1);
}else{
fputc(c,fPtr1);
}
}else{
fputc(c,fPtr1);
}
c = fgetc(fPtr);
}
fclose(fPtr);
fclose(fPtr1);
remove(filename);
rename(filename2,filename);
fPtr = fopen(filename, "r");
c = fgetc(fPtr);
while(c!=EOF){
printf("%c",c);
c = fgetc(fPtr);
}
fclose(fPtr);
}
【问题讨论】:
-
如果你知道
islower,你也应该知道toupper,不要使用c-32这样的表达方式 -
谢谢,我会解决的
标签: c file word uppercase toupper