| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 244 人关注过本帖
标题:关于字符串的问题
只看楼主 加入收藏
彩色、恋月
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-3-11
结帖率:0
收藏
已结贴  问题点数:10 回复次数:1 
关于字符串的问题
程序代码:
[local]1[/local]   

以行为单位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值, 得到第一个新的字符, 第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新的字符, 以此类推一直处理到最后第二个字符, 最后一个字符的ASCII值加原第一个字符的ASCII值, 得到最后一个新的字符, 得到的新字符分别存放在原字符串对应的位置上,之后把已处理的字符串逆转后仍按行重新存入字符串数组xx中。
在vc++6.0环境下运行:问题是输出结果和文件中存储的结果不一样呢?主要是分行的问题??求解释,机试得分为0啊,考试在即啊。。。。输入文件和程序等其他事务均在压缩文件里! 先感谢各位大侠啦。。。


#include <stdio.h>
#include <string.h>
unsigned char xx[50][80] ;
int maxline = 0 ;  /* 文章的总行数 */
int ReadDat(void) ;
void WriteDat(void) ;
void ChA(void)
{ int i,j,k,len;
char ch,temp; 
for(i=0;i<maxline;i++)
{len=strlen(xx[i]);
ch=xx[i][0];
for(j=0;j<len-1;j++)
xx[i][j]=xx[i][j]+xx[i][j+1];
xx[i][len-1]=ch+xx[i][len-1];


for(k=0,j=len-1;k<len/2;k++,j--)
{temp=xx[i][k];
xx[i][k]=xx[i][j];
xx[i][j]=temp;}
//xx[i][len]='\n';
}}
void main()
{
  if(ReadDat()) {
    printf("数据文件IN.DAT不能打开!\n\007") ;
    return ;
  }
  ChA() ;
  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) ;
}


[ 本帖最后由 彩色、恋月 于 2012-3-11 15:52 编辑 ]
搜索更多相关主题的帖子: 存储 字符串 
2012-03-11 15:48
F1432878333
Rank: 2
等 级:论坛游民
帖 子:1
专家分:10
注 册:2012-3-12
收藏
得分:10 
啊哈哈。。。
2012-03-12 21:55
快速回复:关于字符串的问题
数据加载中...
 
   



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

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