如何将文本文件字符转换为大写字母?

时间:2015-05-11 22:05:32

标签: c

我正在使用C编程语言。我希望将文本文件中的字符转换为大写字母,并在转换后在屏幕上打印文本文件内容。

这是我的代码:

 #include <stdio.h>
 #include <string.h>

 int main()
 {
 FILE *fptr;
 char filename[30];
 char ch;

printf("Enter filename you want to make capital letters: \n");
scanf("%s",filename);

fptr = fopen(filename,"r");

ch = fgetc(fptr);
while(ch != EOF)
{
ch = toupper(ch);
printf("%c",ch);
ch = fgetc(fptr);
}

fclose(fptr);

return 0;
}

1 个答案:

答案 0 :(得分:1)

你很顺利!以下是一些建议的调整:

首先,char ch应为int ch。请查看fgetch的手册页,您会发现它返回int。这实际上非常重要,因为返回的EOF将超出char的范围,但在int的范围内。

接下来,您可以简化一下。为什么不:

while((ch = fgetc(ptr)) != EOF)
{
  printf("%c", (char)ch);
}

这会将您的逻辑测试和读取移到一行,从而消除当前包含fgetch的两行。

最后,您应该#include<ctype.h>,因为那是定义int toupper(int)的头文件。