C语言练习题-C语言练习题实例98
题目:编写一个程序,从键盘输入一个字符串,将其中的小写字母转换为大写字母,并将结果保存到磁盘文件 "test" 中。输入的字符串以字符 '!' 结束。
程序分析:在这个程序中,我们首先声明一个指向 FILE
的指针 fp
和一个字符数组 str
,用于存储用户输入的字符串。
然后,我们使用 gets()
函数从用户输入获取字符串。接下来,我们计算字符串的长度,并使用循环逐个检查字符串中的字符。
如果字符是小写字母,则将其转换为大写字母。我们使用 ASCII 码表将小写字母转换为大写字母。具体做法是将小写字母的 ASCII 码值减去 32,即可得到对应的大写字母的 ASCII 码值。
然后,我们尝试打开名为 "test" 的文件,如果打开失败则输出错误信息并退出程序。如果文件打开成功,则使用 fprintf()
函数将转换后的字符串写入文件中。
最后,我们关闭文件,并使用 system("pause")
函数使程序暂停,以便用户查看输出结果。
实例
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *fp = NULL;
char str[50];
int i, len;
printf("输入一个字符串:\n");
gets(str);
len = strlen(str);
for (i = 0; i < len; i++)
{
if (str[i] >= 'a' && str[i] <= 'z')
{
str[i] -= 32;
}
}
if ((fp = fopen("test", "w")) == NULL)
{
printf("error: cannot open file!\n");
exit(0);
}
fprintf(fp, "%s", str);
fclose(fp);
system("pause");
return 0;
}
在这个程序中,我们首先声明了一个指向 FILE
的指针 fp
和一个字符数组 str
。然后,我们使用 gets()
函数从用户输入获取字符串。
接下来,我们计算字符串的长度,并使用循环逐个检查字符串中的字符。如果字符是小写字母,则将其转换为大写字母。
在循环中,我们使用 ASCII 码表将小写字母转换为大写字母。具体做法是将小写字母的 ASCII 码值减去 32,即可得到对应的大写字母的 ASCII 码值。
然后,我们尝试打开名为 "test" 的文件。如果文件打开失败,则输出错误信息并退出程序。
如果文件打开成功,则使用 fprintf()
函数将转换后的字符串写入文件中。
最后,我们关闭文件,并使用 system("pause")
函数使程序暂停,以便用户查看输出结果。
运行程序,输入一个字符串,例如:
输入一个字符串:
www.javatiku.cn
程序将把字符串中的小写字母转换为大写字母,并将结果保存到文件 "test" 中。你可以打开该文件查看结果。