永发信息网

帮我讲一下一个关于字符串处理的C程序,尽量详细啊!

答案:2  悬赏:80  手机版
解决时间 2021-05-16 09:44

#include <stdio.h>

#include <string.h>

#include <conio.h>

char  xx[50][80];

int  maxline = 0;    

int ReadDat(void);

void WriteDat(void);

void StrOR(void)

{

         int  i, j, k;

         char  buf[80];

         for (i=0; i<maxline; i++)

         {

                   j = strlen(xx[i])-1;

                   while (xx[i][j]!='o' && j>=0)

                            j--;

                   if (j < 0)

                            continue;

                   xx[i][j] = 0;

                   strcpy(buf, &xx[i][j+1]);

                   k = j = 0;

                   while (xx[i][j])

                   {

                            while (xx[i][j]!='o' && xx[i][j])

                                     j++;

                            if (!xx[i][j])

                            {

                                     strcat(buf, &xx[i][k]);

                                     break;

                            }

                            xx[i][j] = 0;

                            strcat(buf, &xx[i][k]);

                            j++;

                            k = j;

                   }

                   strcpy(xx[i], buf);

         }

}

void main()

{

         if (ReadDat())

         {

                   printf("数据文件IN.DAT不能打开!\n\007");

                   return;

         }

         StrOR();

         WriteDat();

}

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(fp);

         return 0;

}

void WriteDat(void)

{

         FILE  *fp;

         int  i;

         fp = fopen("OUT.DAT", "w");

         for (i=0; i<maxline; i++)

         {

                   printf("%s\n", xx[i]);

                   fprintf(fp, "%s\n", xx[i]);

         }

         fclose(fp);

}

函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入字符串数组xx[]中,请编制函数StrOR(),其函数的功能是:以行为单位一次把字符串所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到OUT.DAT中。

例如: 原文  n any field. Yu can create an index

             You have the correct record.

       结果  n any field. Yu can create an index

             rd.yu have the crrect rec

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。

最佳答案

我先mark一下,等会儿回答

全部回答

其函数的功能是:以行为单位一次把字符串所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到OUT.DAT中。

这个就是StrOR()的功能啊 题目就是让你自己实现这个函数

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
dnf红眼56级去哪里练级最快
谁能给我些中医病历?
氨水有腐蚀性吗,完美的空调清洁剂喷到地板砖
长垣县新乡美丽港湾地址在哪,我要去那里
多普达838在那里才能下载游戏
巢湖市经济开发区的房价
父母对出国孩子的寄语,家长寄语大全
大祥区邵阳青时尚造型地址是什么,有没有知道
李炜是不是很帅,武艺是不是很讨厌
求“一起来看流星雨”35集中楚雨荨酒吧喝酒时
谁见过有“犯罪者与动机”这本书卖嘛?
幼儿园小朋友一周评语,幼儿园小班周周评语
北湖区郴州申通快递(南湖路营业厅)地址在哪里
下载了驱动精灵之后怎么办呢?
哇!快递!先签后验!我服!我该怎么办……
推荐资讯
大悟县孝感大悟县苏区人民医院在哪里啊,我有
湛河区平顶山老牌烩面地址是什么,有没有知道
魅力汇汗蒸美容养生中心在什么地方啊,我要过
哪里可以买到风景芒树
西工区洛阳海森教育地址在哪,我要去那里
什么游戏是最好玩的
销售最基本的要具备哪些?
让胡路区大庆创业宾馆地址是什么,有没有知道
圆与其他图形有什么联系与区别吗?
死神里市丸银死了吗?
为什么连续喝感冒冲剂之后会有想吐的感觉?
如何办理5元短信包呢?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?