学习网考试学习资料

Gzu521.com

软件设计师:字符串程序题一

计算机软件水平考试   点击:次   发布时间:2007-1-31   【字体: 】   来源:Gzu521.com
GZU521.COM学习网
函数readdat()实现从文件in.dat中读取一篇英语文章存入到字符串数组xx中;请编制函数convertchard(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的前一个字母,如果是a字母,则改写为z。大写字母和其他字符保持不变。把已处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数writedat(),把结果输出到文件out4.dat中。

例如:
原文
adb.bcdza
abck.llhj
结果
aca.bbcyz
zabj.llgi
原始数把文件存放的格式是:每行的宽度均小于80个字符,含标点和空格。

程序:
#include
#include
#include

char xx[50][80];
int maxline=0; /*文章总行数*/

int readdat(void);
void writedat(void);

void convertchard(void)
{/*采用字符串指针方法*/
int i;
char *pf;
for (i=0;i {
pf=xx[i];
while (*pf)
if (*pf==’a’)
{*pf=’z’;pf++;}
else if (*pf>=’b’ %26amp;%26amp; *pf<=’z’)
{*pf-=1;pf++;}
else
pf++;
}
}

void convertchard(void)
{/*采用字符数组方法*/
int i,j;
char c;
for (i=1;i {
for (j=0;j if (xx[i][j]==’a’) xx[i][j]=’z’;
else
if (xx[i][j]>=’b’ %26amp;%26amp; xx[i][j]<=’z’) xx[i][j]--;
}
}

void main()
{
clrscr();
if (readdat())
{
printf("数据文件in.dat不能打!\n\007");
return;
}
convertchard();
writedat();
system("pause");
}

int readdat(void)
{
file *fp;
int i=0;
char *p;

if ((fp=fopen("in.dat","r"))==null) return 1;
while (fgets(xx[i],80,fp)!=null)
{
p=strchr(xx[i],’\n’);
if (p) *p=0;
i++;
}
maxline=i;
fclose(p);
return 0;
}

void writedat(void)
{
file *fp;
int i;

fp=fopen("out4.dat","w");
for (i=0;i<=maxline;i++)
{
printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);
}

说明:字符串数组xx是二维数组,xx[0]存放第一行字符,xx[1]存放第二行...特别是printf一句中"%s"用时注意。

责任编辑:gzu521

IT认证分类
计算机软件水平考试
全国计算机等级考试
思科认证
微软认证
ORACLE/CIW认证
Linux认证
JAVA认证
其它认证
分类推荐信息
更多...
大类最新文章
更多...