从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输
从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以“!”结束.我写的程序是#include<stdio.h...
从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以“!”结束.
我写的程序是
#include <stdio.h>
#include <stdlib.h>
void main ()
{
char str[100];
int i;
FILE*fp;
if((fp=fopen("test.c","w")==NULL) )
{
printf("Can not open the file\n");
exit(0);
}
printf("请输入一组字符串");
scanf("%s",str);
printf("\n");
for(i=0;i!='!';i++)
{
if(str[i]>='a'&&str[i]<='z')
{
str[i]=str[i]-('z'-'a');
fputc(str[i],fp);
getchar(str[i]);
}
fputc(str[i],fp);
getchar(str[i]);
}
fclose(fp);
}
哪里有不对的请指出
还有 对于读写文件 什么时候该用二进制 什么时候该用ASCII码 不是很清楚 希望有老师可以指点一下 展开
我写的程序是
#include <stdio.h>
#include <stdlib.h>
void main ()
{
char str[100];
int i;
FILE*fp;
if((fp=fopen("test.c","w")==NULL) )
{
printf("Can not open the file\n");
exit(0);
}
printf("请输入一组字符串");
scanf("%s",str);
printf("\n");
for(i=0;i!='!';i++)
{
if(str[i]>='a'&&str[i]<='z')
{
str[i]=str[i]-('z'-'a');
fputc(str[i],fp);
getchar(str[i]);
}
fputc(str[i],fp);
getchar(str[i]);
}
fclose(fp);
}
哪里有不对的请指出
还有 对于读写文件 什么时候该用二进制 什么时候该用ASCII码 不是很清楚 希望有老师可以指点一下 展开
4个回答
展开全部
"str[i]=str[i]-('z'-'a');"
上面这句话应该不对吧?小写字母全部转换成大写字母就是对应ASCII码减32,你这个'z'-'a'的值是25.
另外赞同楼上说的“还可以按照常识,比如操作文本文件都用ascii,对于二进制文件,用二进制。 ”但这不是绝对的,文本文件用ascii,主要是这些信息本来就是以自然文本的形式表达,你用记事本打开这些ASCII码存储的文本,一目了然知道了想要反应的信息。如果按照二进制的方式读写这些本来要用ASCII码表达的东西,用记事本打开就只能看到乱码。但并不是说以二进制操作就不能正确获取内容。用二进制操作文本文件通常比用ASCII方式生成的文件要小得多。
上面这句话应该不对吧?小写字母全部转换成大写字母就是对应ASCII码减32,你这个'z'-'a'的值是25.
另外赞同楼上说的“还可以按照常识,比如操作文本文件都用ascii,对于二进制文件,用二进制。 ”但这不是绝对的,文本文件用ascii,主要是这些信息本来就是以自然文本的形式表达,你用记事本打开这些ASCII码存储的文本,一目了然知道了想要反应的信息。如果按照二进制的方式读写这些本来要用ASCII码表达的东西,用记事本打开就只能看到乱码。但并不是说以二进制操作就不能正确获取内容。用二进制操作文本文件通常比用ASCII方式生成的文件要小得多。
展开全部
#include<stdio.h>
void main()
{
char str[100];
FILE *p;
int i,len=0;
printf("输入一串英文字符:\n");
while((str[len]=getchar())!='!')
{
len++;
}
for(i=0;i<len;i++)
if(str[i]>='a'&&str[i]<='z')
str[i]-=32;
p=fopen("c:\\test.txt","w");
fputs(str,p);
fclose(p);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
void convert(char *str)
{
while (*str!='\0')
{
if (*str>='a' && *str<='z')
{
*str-=32;
}
*str++;
}
}
main()
{
FILE *fp;
char str[100];
fp = fopen("test.txt","w");
gets(str);
convert(str);
fputs(str,fp);
fclose(fp);
}
void convert(char *str)
{
while (*str!='\0')
{
if (*str>='a' && *str<='z')
{
*str-=32;
}
*str++;
}
}
main()
{
FILE *fp;
char str[100];
fp = fopen("test.txt","w");
gets(str);
convert(str);
fputs(str,fp);
fclose(fp);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么时候用二进制,什么时候用ascii码,这个不好定论。
一方面根据你的需要,还可以按照常识,比如操作文本文件都用ascii,对于二进制文件,用二进制。
一方面根据你的需要,还可以按照常识,比如操作文本文件都用ascii,对于二进制文件,用二进制。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询