关于文件操作部分的提问&如何使用strupr和toupper啊?

ScorpioZZR 2003-08-19 11:45:26
输入一字符串,将小写字母转为大写的,遇到!结束。
以下是我的程序。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

void main()
{
FILE *fp;
char str[100];
int i=0;
fp=fopen("myP.txt","w");
if(fp==NULL)
{
printf("error!\n");
exit(0);
}
scanf("%c",&str[0]);
while(str[i]!='!')
{
scanf("%c",&str[i]);
i++;
}
str[i]='\0';
for(i=0;i<strlen(str);i++)
{
//printf("%c",str[i]);
toupper(str[i]);
fputc(str[i],fp);
}
fclose(fp);
}
-----
1.哪里有问题啊?为什么不行啊?大虾帮忙指出错误所在。
2.另外,我想知道,toupper的用法有没问题?
3.如果我想用strupr来改写要怎么改写?
...全文
121 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
panpass 2003-08-22
  • 打赏
  • 举报
回复
up
021850524 2003-08-20
  • 打赏
  • 举报
回复
>>2.另外,我想知道,toupper的用法有没问题?
有问题:toupper的返回值才是大写的.参数是没法改的.
pengzhenwanli 2003-08-20
  • 打赏
  • 举报
回复
void main()
{
FILE *fp;
char str[100];
int i=0;
fp=fopen("myP.txt","w");
if(fp==NULL)
{
printf("error!\n");
exit(0);
}
scanf("%c",&str[0]);
// while(str[i]!='!')
// {
// scanf("%c",&str[i]);//这里的问题,你把输入后的数得指针后移了,永远判断的是输入的下一个,不可能对。

// i++;
// }
while(str[i++]!='!')
{
scanf("%c",&str[i]);
}
str[i]='\0';
for(i=0;i<strlen(str);i++)
{
//printf("%c",str[i]);
int temp = toupper(str[i]);
fputc(temp,fp);
}
//如果用
strupr( str );


for(i=0;i<strlen(str);i++)
{


fputc(str[i],fp);
}
fclose(fp);
}
另外,文件操作经常用,不然数据怎么分析?跟别人看。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧