| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 635 人关注过本帖
标题:[求助]等待解决
只看楼主 加入收藏
zhangqing42
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-12-31
收藏
 问题点数:0 回复次数:7 
[求助]等待解决

有一文本。
数字间以逗号分隔。每组数字为3位,不足3位用空格代替。
例如 ,165,45,3,1,333,85,6,74,1,635,355,156,354,33,3,33,311,
165,45,3,1,333,85,6,74,1,635,355,156,354,33,3,33,311,替换成

165,45 ,3 ,1 ,333,85 ,6 ,74 ,1 ,635,355,156,354,33 ,3 ,33 ,311,
165,45 ,3 ,1 ,333,85 ,6, 74 ,1 ,635,355,156,354,33 ,3, 33 ,311,

由于文件数据成千上万,手工敲空格等于自杀。所以请大家帮忙编个小程序。
本人是编程白痴请详细注明步骤。小弟感激不尽。
祝大家新年愉快,

在线等

搜索更多相关主题的帖子: 自杀 数字 空格 
2006-12-31 15:38
zhangqing42
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-12-31
收藏
得分:0 

没人帮忙么。拉兄弟一把

2006-12-31 16:48
kelifei
Rank: 1
来 自:UESTC
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-5-11
收藏
得分:0 
帮忙顶一下

对文件操作吾也菜菜

-DFAE -DESS -DDVD -DMTK  -DDVR -DDECODE -DMSTAR -DPMP我决定在论坛潜水3年又3年!
2006-12-31 18:36
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 

#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *fp;
unsigned int i=0,j=0,k=0;
char ch=0,tmp[2000]="\0"; //这里的2000可以改大点
fp=fopen("temp.txt","r");
if(fp==NULL)
{
printf("can not open file.\n");
system("pause");
return 1;
}
/*首先把文件读到数组tmp中*/
while((ch=fgetc(fp))!=EOF) //读到文件末尾
{
tmp[i]=ch;
i++;
}
tmp[i]='\0';
i=0;
/*然后把数组内容写入文件中*/
fp=fopen("temp.txt","w");
while(tmp[i]!='\0')
{
if(tmp[i]!=',') //不是逗号,就直接写入
{
fputc(tmp[i],fp);
j++; //用j纪录从文件开头或者前一个逗号开始,
//又写入了几个符号,以便写入适当个数的空格
}
else{

if(j<3) { //j<3表示写入字符数不足3个,需要空格补
while(k<3-j){ //补上空格,个数是3-j
fputc(32,fp); //32是空格对应的ascii码
k++;
}
}
j=0; //j和k都要清零
k=0;
fputc(tmp[i],fp); //写入逗号
}
i++;
}

fclose(fp); //关闭文件
return 0;
}


这个程序在devc++下测试通过,如果在TC环境,需要把用“//”表示的注释行转换成“/**/”格式。VC环境下应该也可以通过。


坚决不跟用TC的人打交道!
2006-12-31 19:35
zhangqing42
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-12-31
收藏
得分:0 

兄弟VB下不行啊

2006-12-31 20:15
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
以下是引用zhangqing42在2006-12-31 20:15:14的发言:

兄弟VB下不行啊

c语言程序你放到VB下干什么?


坚决不跟用TC的人打交道!
2006-12-31 23:58
senyee
Rank: 1
等 级:新手上路
帖 子:422
专家分:0
注 册:2006-11-28
收藏
得分:0 
以下是引用zhangqing42在2006-12-31 20:15:14的发言:

兄弟VB下不行啊

你要用vb编?


菜鸟~~请多指教~~
2007-01-01 10:27
liubuwei
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-12-27
收藏
得分:0 

#include <stdio.h>
#define m 1000
void main()
{
char stra[m],strb[4];
strb[0]=' ';
strb[1]=' ';
strb[2]=' ';
strb[3]='\0'; //建立两个字符串,strb[]=" \0"
int i,j,k=0;
gets(stra);
for(i=0;i<1000;i++)
{
if(stra[i]=='\0')
break;
}
for(j=0;j<i;j++)
{

if(stra[j]==',')
{
printf("%-3s,",strb);
k=0;
j++;
strb[0]=' ';
strb[1]=' ';
strb[2]=' ';
strb[3]='\0'; //重新让strb[]=" \0"
}
strb[k]=stra[j];
k++;

}
} //我只是菜鸟,想了挺久才想出这个来
//这个程序要求那个要改变的字符串必中每个数组中最多只有三个数字,
//并且每两个数组之间必须有逗号隔开,每个数组必须有数字,
//如果不满足以上的要求,结果就不正确了.

2007-01-01 13:59
快速回复:[求助]等待解决
数据加载中...
 
   



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

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