| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 435 人关注过本帖
标题:新手求助,红色字体的代码有什么作用,谢谢!
只看楼主 加入收藏
pdf1020
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-8-13
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
新手求助,红色字体的代码有什么作用,谢谢!
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char xx[50][80];
int maxline=0;
int ReadDat(void);
void WriteDat(void);

void StrOR(void)
{    int i,j,k;                     /*定义循环控制变量*/
    int index,str;                 /*定义变量*/
    char ch;                       /*定义暂存变量*/
    for(i=0;i<maxline;i++)         /*逐行获取字符数据进行处理*/
    {    str=strlen(xx[i]);         /*求各行的长度*/
        index=str;
        for(j=0;j<str;j++)         /*将一行中所有小写字母o右边的字符依次向左移一位,并删除字母o*/
            if(xx[i][j]=='o')
            {    for(k=j;k<str-1;k++)
                    xx[i][k]=xx[i][k+1];
                str--;             /*每删除一个字母o,该行长度减少1*/
                index=j;           /*记录下最后一个o所在的位置*/
                j--;               /*从上一个被删除的字母o的位置继续寻找下一个o*/
            }
       for(j=str-1;j>=index;j--)  /*最后一个o右侧的所有字符都移到已处理字符串的左边*/
请问这句代码有什么作用??下面的语句也没有出现 j 啊。 我试着把这句话删除,但是结果是不一样的,不能出现最后一个o右侧的所有字符都移到已处理字符串的左边的效果。。。
        {    ch=xx[i][str-1];
            for(k=str-1;k>0;k--)
                xx[i][k]=xx[i][k-1];
            xx[i][0]=ch;
            xx[i][str]='\0';       /*在每行末尾添加字符串结束标志*/
        }
    }
}

void main()
{
 system("CLS");
 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;
 system("CLS");
 fp=fopen("OUT.DAT","w");
 for (i=0;i<maxline;i++)
     {
      printf("%s\n",xx[i]);
      fprintf(fp,"%s\n",xx[i]);
     }
 fclose(fp);
}
搜索更多相关主题的帖子: 字母 include 
2011-08-13 19:52
dreamofgod
Rank: 5Rank: 5
等 级:职业侠客
帖 子:194
专家分:341
注 册:2011-8-16
收藏
得分:20 
j在此处只是负责循环的次数,不使用它是很正常的。
程序代码:
//也可以这样写。
j=str-1;
while(j>=index)
{
    j--;
    ch=xx[i][str-1];
    for(k=str-1;k>0;k--)
    {
        xx[i][k]=xx[i][k-1];
    }
    xx[i][0]=ch;
    xx[i][str]='\0';       /*在每行末尾添加字符串结束标志*/
}

一个单片机就让我头疼不已~~~
2011-08-20 13:30
快速回复:新手求助,红色字体的代码有什么作用,谢谢!
数据加载中...
 
   



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

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