| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 436 人关注过本帖
标题:大家帮我看看这题(字符串查找),谢谢!
只看楼主 加入收藏
WUYANJUN
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-8-24
收藏
 问题点数:0 回复次数:0 
大家帮我看看这题(字符串查找),谢谢!
函数ReadDat()实现从文件IN89.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR(),其功能是:以行为单位把字符串中的所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,然后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT89.DAT中。例如:
原文:You can create an index on any field
you have the correct record.
结果:n any field.Yu can create an index
rd.yu have the crrect rec
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【试题程序】
#include "stdio.h"
#include "string.h"
#include "conio.h"
#include <windows.h>
char xx[50][80];
int maxline=0;
int ReadDat(void);
void WriteDat(void);
void StrOR(void)
{

}
void main()
{
system("cls");
if(ReadDat())
{
printf("Can't open the file!\n"); return;}
StrOR();
WriteDat();
}
int ReadDat(void)
{
FILE *fp;int i=0;char *p;
if((fp=fopen("IN89.DAT","r"))==NULL) return 1;
while(fgets(xx,80,fp)!=NULL)
{
p=strchr(xx,'\n');
if(p) *p=0;
i++;
}
maxline=I;
fclose(fp);
return 0;
}
void WriteDat(void)
{
FILE *fp;
int I;
fp=fopen("OUT89.DAT","w");
for(i=0;i<maxline;i++)
{ printf("%s\n",xx); fprintf(fp,"%s\n",xx); }
fclose(fp);
}

以上是题目。我的解答是:
void StrOR(void)
{
int i,strl,j=0,k,m=0,n=0;
char yy[80],zz[80];
for(i=0;i<maxline;i++)
{
strl=strlen( xx [ i ] );
for(;j<strl;j++)
if(xx [ i ] [ j ] =='o')
{
for(k=0;k<j;k++)
yy[m++]=xx [ i ] [ k ];
for(k=j+1;k<strl;k++);
zz[n++]=xx [ i ] [ k ];
strcat(zz,yy);
strcpy( xx [ i ] ,zz);
strl--;
m=n=j=0;
}
}
}

调试出来结果不正确。请问错在哪儿?
搜索更多相关主题的帖子: 字符 
2008-08-24 17:06
快速回复:大家帮我看看这题(字符串查找),谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028329 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved