| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 608 人关注过本帖
标题:100题第3道
只看楼主 加入收藏
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
收藏
 问题点数:0 回复次数:3 
100题第3道
3:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数STROR(),其函数功能是:以行为单位把字符串中的所有小写字母O左边的字符串内容移到该串的右边存放,然后并把小写字母O删除,余下的字符串内容移到已处理字符串的左边存放.最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT.DAT中.
例如:原文:You can create an index on any field.
you have the correct record.
结果: n any field.You can create an index
rd.yu have the crrect rec
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.
--------------类型:字符串(单词)的倒置和删除。
void StrOR(void)
{int I,j,k,index,strl;
char ch;
for(I=0;I<maxline;I++) /*maxline 是已经定义了的变量,表示该英文段落的行数。*/
{strl=strlen(xx[I]); /*strlen()函数用来求得每行的字符数。*/
index=strl; /*将strl赋值给index,我搞不懂这里为什么还要把值赋给它呢?下面根本没用到index*/
for(j=0;j<strl;j++) /*循环嵌套*/
if(xx[I][j]=='o') /*考察I行J列的字符是否为“O”*/
{for(k=j;k<strl-1;k++)
xx[I][k]=xx[I][k+1]; /*将某行下,后一个字符前移一位*/
xx[I][strl-1]= ' ';
index=j;
}
for(j=strl-1;j>=index;j--)
{ch=xx[I][strl-1];
for(k=strl-1;k>0;k--)
xx[I][k]=xx[I][k-1];
xx[I][0]=ch;
}
}
}
2006-03-15 10:59
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
收藏
得分:0 
以下是引用redalert在2006-3-15 10:59:00的发言:
3:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数STROR(),其函数功能是:以行为单位把字符串中的所有小写字母O左边的字符串内容移到该串的右边存放,然后并把小写字母O删除,余下的字符串内容移到已处理字符串的左边存放.最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT.DAT中.
例如:原文:You can create an index on any field.
you have the correct record.
结果: n any field.You can create an index
rd.yu have the crrect rec
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.
--------------类型:字符串(单词)的倒置和删除。
void StrOR(void)
{int I,j,k,index,strl;
char ch;
for(I=0;I<maxline;I++) /*maxline 是已经定义了的变量,表示该英文段落的行数。*/
{strl=strlen(xx[I]); /*strlen()函数用来求得每行的字符数。*/
index=strl; /*将strl赋值给index,我搞不懂这里为什么还要把值赋给它呢?下面根本没用到index*/
for(j=0;j<strl;j++) /*循环嵌套*/
if(xx[I][j]=='o') /*考察I行J列的字符是否为“O”*/
{for(k=j;k<strl-1;k++)
xx[I][k]=xx[I][k+1]; /*将某行下,后一个字符前移一位*/
xx[I][strl-1]= ' ';
index=j;
}
for(j=strl-1;j>=index;j--) /*这里循环里用到了的啊!!!*/
{ch=xx[I][strl-1];
for(k=strl-1;k>0;k--)
xx[I][k]=xx[I][k-1];
xx[I][0]=ch;
}
}
}

我还没看懂你的意思,你给你例子怎么来的呢!!
例如:原文:You can create an index on any field.
you have the correct record.
结果: n any field.You can create an index /*这个o怎么没去掉呢!*/
rd.yu have the crrect rec /*这个又去掉了*/


2006-03-15 11:12
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
收藏
得分:0 
那个O是打印错误了,应该没有的。

能学多少是多少,不学是傻瓜!
2006-03-15 11:15
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
收藏
得分:0 
以下是引用redalert在2006-3-15 10:59:00的发言:
3:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数STROR(),其函数功能是:以行为单位把字符串中的所有小写字母O左边的字符串内容移到该串的右边存放,然后并把小写字母O删除,余下的字符串内容移到已处理字符串的左边存放.最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT.DAT中.
例如:原文:You can create an index on any field.
you have the correct record.
结果: n any field.You can create an index
rd.yu have the crrect rec
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.
--------------类型:字符串(单词)的倒置和删除。
void StrOR(void)
{int I,j,k,index,strl;
char ch;
for(I=0;I<maxline;I++) /*maxline 是已经定义了的变量,表示该英文段落的行数。*/
{strl=strlen(xx[I]); /*strlen()函数用来求得每行的字符数。*/
index=strl; /*将strl赋值给index,我搞不懂这里为什么还要把值赋给它呢?下面根本没用到index*/
for(j=0;j<strl;j++) /*循环嵌套*/
if(xx[I][j]=='o') /*考察I行J列的字符是否为“O”*/
{for(k=j;k<strl-1;k++)
xx[I][k]=xx[I][k+1]; /*将某行下,后一个字符前移一位*/
xx[I][strl-1]= ' ';
index=j;
}
for(j=strl-1;j>=index;j--)
{ch=xx[I][strl-1];
for(k=strl-1;k>0;k--)
xx[I][k]=xx[I][k-1];  
xx[I][0]=ch;
}
}
}

用来控制将位置变回原形的!

2006-03-15 11:53
快速回复:100题第3道
数据加载中...
 
   



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

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