读书人

哪位高手能帮小弟我看看这程序哪错了d

发布时间: 2013-04-20 19:43:01 作者: rapoo

谁能帮我看看这程序哪错了data.in 里为QWrrTerrt,将前四位的大写转为小写,其余不变,输出qwrrTerrt
#include<stdio.h>
#include<string.h>
#define N 100
int main()
{
int i;
int t;
char a[N], ch;

FILE *fp;
fp =fopen("data.in", "r");

if(fp == NULL)
{
fprintf(stderr,"CAN'T OPEN FILE!\n");
return -1;
}
ch = 1;
for(i = 0; (ch= fgetc(fp)) != EOF; i ++){
printf("%c",ch);
ch = a[i];
}
for (i = 0; i <= 3; i++){
if(ch >= 'A'||ch <= 'Z'){
ch += 32;
}
printf("%c",ch);
if(feof(fp))
break;
}
printf("\n");
fclose(fp);
return 0;
}


[解决办法]


int i;
int t;
char a[N]={0}, ch;

FILE *fp;
fp =fopen("d:\\data.in", "r");

if(fp == NULL)
{
fprintf(stderr,"CAN'T OPEN FILE!\n");

return -1;
}
ch = 1;
for(i = 0; (ch= fgetc(fp)) != EOF; i ++)
{
printf("%c",ch);
a[i] = ch; // 一个个保存在a数组中
}

printf("\n");
for (i = 0; i <= strlen(a); i++) // for语句遍历整个词


{// 下面的判断是 && ,而不是
[解决办法]

if( a[i] >= 'A'&& a[i] <= 'Z' && i < 3 )
{// 变换前4个需要变换的字母
a[i] += 32;
}
printf("%c",a[i]);

}


printf("\n");

读书人网 >C语言

热点推荐