水洗便条纸去哪里买:C++小问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 06:47:26
/*下列程序的功能是:把s字符串中的所有字母改写成该字母的下一个字符,字母z改写成字母a。要求大写字母仍为大写字母,
小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char *s)实现程序的要求,最后调用函数readwriteDat()把结果输出
到文件out.dat中。例如:s字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为No.123Ayz。??
注:该题的思路比较明显,先判断是否是'z'或'Z',若是则转成相应的'a'或'A',否则再判断是不是字母(已除'z'或'Z')。
*/?
void chg(char *s)
{
?int i,k;
?k=strlen(s);
?for(i=0;i<k;i++);
{ if(s[i]=='z'||s[i]=='Z')?s[i]-=25;
else if(isalpha(s[i]))? s[i]+=1;
} ??
}

void readwriteDat(char *s)
{ int i;
FILE *fp;
fp=fopen(fp,"out.dat","w");
i=0;
while(s[i]=='\0')
{ i++;
fprintf(fp,"%c",s[i]);
}
fclose(fp);
}

main()
{ char s[100];
int i=-1;
printf("输入字符串s以回车结束:\n");
while(getchar(s[++i])!='\n');
chg(s);
readwriteDat(s);
}
上面所列程序,有些问题,请各位大家帮忙找一下。
特别是
“void readwriteDat(char *s)
{ int i;
FILE *fp;
fp=fopen(fp,"out.dat","w");
i=0;
while(s[i]=='\0')
{ i++;
fprintf(fp,"%c",s[i]);
}
fclose(fp);
}”怎么调用写入文件函数?
拜托了!

#include <stdio.h>
#include <string.h>
void chg(char *s)
{
int i,k;
k=strlen(s);
for(i=0;i<k;i++)
{if(s[i]=='z'||s[i]=='Z') s[i]-=25;
else
if((s[i]>='a'&&s[i]<'z')||(s[i]>='A'&&s[i]<'Z')) s[i]+=1;
}
}

void readwriteDat(char *s)
{
FILE *fp;
fp=fopen("out.dat","w");
fputs(s,fp);
fclose(fp);
}

main()
{ char s[100];
int i=-1;
printf("输入字符串s以回车结束:\n");
while(((s[++i]=fgetc(stdin))!='\n')&&(i<100));
if(i<100)s[++i]='\0';
chg(s);
readwriteDat(s);
}