1 题目
从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。 输入的字符串以!结束。
2 分析
写入文件请参考上一篇文章 C语言经典例97-输入字符写入文件,对于字符串小写字母转换为大写字母有两种方法:
- 根据
ASCII
码来转换,观察ASCII
码中大小字母和小写字母的规律可以发现,将小写字母-32
则可以转换为相应的大写字母。 - 使用
ctype.h
中的函数toupper()
和tolower()
,前者是转换为大写字母,后者是转换为小写字母。
本题采用第一种方法:
3 实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE*fp = NULL;
char str[100];
printf("输入一个字符串:");
gets(str);
int len = strlen(str);
for (int i = 0; i < len; i++) {
if(str[i] <= 'z' && str[i] >= 'a') {
str[i] -= 32; // 小写转大写
}
}
if ((fp = fopen("test", "w")) == NULL) {
printf("文件打开失败\n");
exit(0);
}
fprintf(fp, "%s", str);
fclose(fp);
return 0;
}