计算机等级考试三级编程解析十
X.字符串(单词)的倒置和删除
函数的作用是:从。DAT并将其存储在字符串数组XX中;请
编译函数STROR(),它的作用是:将字符串中小写字母O左侧的字符串
的所有内容移到字符串右侧存储,然后删除小写字母O,将字符串剩余内容移到处理后的字符串
左侧存储。最后,处理后的字符串仍然逐行存储在字符串数组XX中。最后,调用函数write
edat()将结果XX输出到文件OUT5。DAT
例如:原文:可以在任何字段上创建索引。
您有正确的记录。
结果:n任何字段。您可以创建一个索引
rd。您有Cr rect rec
原始数据文件的格式为:每行宽度小于80个字符,带标点和空大小写。
# include " stdio . h "
# include " string . h "
# include " conio . h "
# include " ctype . h "
int maxline = 0;
int read dat(void);
void write dat(void);
void str(void)
{
}
void main()
{
clrscr();
if(read dat())
{ printf("无法打开文件ENG。在!\ n ");
退货;
}
StrOR();
write dat();
}
int read dat(void)
{
FILE * FP;
int I = 0;
char * p;
if((fp=fopen("in.dat "," r "))= = NULL)
返回1;
while(fgets(xx[i],80,fp)!=NULL)
{p=strchr(xx[i],' \ n ');
if(p)
* p = 0;
i++;
}
maxline = I;
f close(FP);
返回0;
}
void write dat(void)
{ FILE * FP;
int I;
fp=fopen("out5.dat "," w ");
for(I = 0;i{printf("%s\n ",xx[I]);
fprintf(fp," %s\n ",xx[I]);
}
fclose(FP);
}
*注意:标题要求的字符串中小写字母O左边的字符串内容全部移到字符串右边存储,即
字符串中“最后”字母O左右两边的内容互换。问题中第一个while()特殊环的作用是让p1
指向最后一个字母‘o’。第一个ctrcat()函数的作用是将p1之后的所有字符放入新字符串T
,第二个strcat()函数的作用是将p1之前的字符连接到新字符串T的后面(注意:在那之前
,让p1指向的单位是p1 *p1='[9] '之前字符串的结束位置)。然后完成左右互换。最后
while()循环的功能是删除新字符串中所有小写字母“o”。是否采用删除法保留'
o '的所有字母?否则不留下任何字母(即相当于删除。)*/
void StrOR(void)
{
int I;
char *p1,*p2,t[80];
for(I = 0;I { t[0]= ' \ 0 ';
p2 = xx[I];
while(* p2)
{ if(* p2 = = ' o ')P1 = p2;
p2++;
}
strcat(t,P1+1);
* P1 = ' \ 0 ';
strcat(t,xx[I]);
P1 = xx[I];
p2 = t;
while(*p2)
{if(*p2!= ' o ')* p1++ = * p2;
p2++;
}
* P1 = ' \ 0 ';
}
}
0条评论