函数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. Yu can create an index
rd. yu have the crrect rec
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标
点符号和空格。
注意:部份源程序已在程序PROG1.C中给出。
请勿改动主函数main()、读函数readDat()和写函数writeDat()
的内容。
解题:本题如果用标准算法实难解释清楚,这里完全用字符串处理函数来做,涉及到的函数有:
(1) char *strchr(char *s,char ch);——从S所指向的字符串中找到打一个ch代表的字符,返回该字符的指针,若找不到返回空指针NULL。
(2)void memset(char *s ,char ch,unsigned count);——将S所指向的数组的前count个字符全部赋于ch所代表的字符,如果ch为‘\0’,count为字符数组的长度,则代表清空数组。
(3)void memcpy(char *s1,char *s2,unsigned count);——将S2字符串的前count个字符拷贝到S1所代表的字符串中。
关于strcpy()和strcat()两个函数就不用说了吧!
好,程序的源码如下:
void Str0R(void)
{
int i; /*用来遍历行 */
char *p,t[100];/*p用来指向字符’o’,t用来临时存放待处理的字符串中’o’前面的串*/