标题:一个统计输入文件中字符,空格,数字,和特殊字符的代码,不过有点问题(请 ...
只看楼主
dsbt2035s
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-8-9
 问题点数:0 回复次数:9 
一个统计输入文件中字符,空格,数字,和特殊字符的代码,不过有点问题(请教)

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
void wnz1();
void wnz2();
void wnz3();
void wnz4();
void main()
{
wnz1();
}
void wnz1()
{
int w1;
printf("plese select function:input:(1),statistics(2)");
scanf("%d",&w1);
if(w1==1)
wnz2();
else
wnz3();
}
void wnz2()
{
FILE *fp;
char str1[80],str[80];
if((fp=fopen("c:\statistics.txt","w+"))==NULL)
{
printf("Cannot open file \n\n");
exit(1);
}
printf("please input some charaters:\n");

scanf("%s",str1);
fprintf(fp,"%s",str1);
printf("%s",str1);
/* do
{
printf("ok");
gets(str);
if(*str!='\n')
{
strcat(str,"\n");
fputs(str,fp);}
if(*str!='\n')
break;

}while(*str!='\n');*/
/* int k;
for(k=0;k<80;k++)
{
getchar(str1[k]);
fputc(str[k],fp);
if(*str!='\n') break;
}*/
fclose(fp);
wnz4();
}
void wnz3()
{
FILE *fp1;
char ch[80];
int k,len;
int a=0,b=0,c=0,d=0;
if((fp1=fopen("c:\statistics.txt","r"))==NULL)
{
printf("Cannot open file\n\n");
exit(1);
}
while(!feof(fp1))
{

fgets(ch,80,fp1);
}
len=strlen(ch);

for(k=0;k<len;k++)
{
if(true)
{
if((ch[k]>='a'&&ch[k]<='z')||(ch[k]>='A'&&ch[k]<='Z'))
a++;
if(ch[k]==' ')
b++;
if(ch[k]>='0'&&ch[k]<='9')
c++;
}
else
d++;
}
printf("The statistics is as follow:\n");
printf("len:%d\n",len);
printf("char: %d\nspace: %d\ndigit : %d\nothers :%d\n",a,b,c,d);
fclose(fp1);
wnz4();
}
void wnz4()
{
char w[4];
printf("continue?(Yes or No)");
scanf("%s",w);
if(strchr("yesYES",*w))
wnz1();
if(strchr("noNO",*w))
exit(1);
printf("please enter (Yes or No)");
wnz4();
}
我想往文件里输入空格和特殊字符用fprintf做不到.但可以输入字母和数字可以统计出来
但我用gets(str);
   fputs(str,fp);
又什么都不能输入,直接进入了下一个程序 奇怪
就是我封的那一个

搜索更多相关主题的帖子: void 空格 字符 数字 
2005-11-21 19:57
dsbt2035s
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-8-9
得分:0 
各位高手别隐藏实力啊~~~
很急帮忙看看啊~~~~
2005-11-22 16:34
ghy2001
Rank: 1
等 级:新手上路
威 望:1
帖 子:87
专家分:0
注 册:2005-10-30
得分:0 
晕,怎么那么长?

2005-11-22 16:57
ADALE
Rank: 2
等 级:新手上路
威 望:4
帖 子:483
专家分:0
注 册:2005-11-18
得分:0 
可唔可以用别的方法,甘长睇都觉得烦

喜欢宁静的平凡生活
2005-11-22 22:20
dsbt2035s
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-8-9
得分:0 
void wnz3()
{
FILE *fp1;
char ch[80];
int k,len;
int a=0,b=0,c=0,d=0;
if((fp1=fopen("c:\statistics.txt","r"))==NULL)
{
printf("Cannot open file\n\n");
exit(1);
}
while(!feof(fp1))
{

fgets(ch,80,fp1);
}
len=strlen(ch);

for(k=0;k<len;k++)
{
if((ch[k]>='a'&&ch[k]<='z')||(ch[k]>='A'&&ch[k]<='Z'))
a++;
else if(ch[k]==' ')
b++;
else if(ch[k]>='0'&&ch[k]<='9')
c++;
else
d++;
}
printf("The statistics is as follow:\n");
printf("len:%d\n",len);
printf("char: %d\nspace: %d\ndigit : %d\nothers :%d\n",a,b,c,d);
fclose(fp1);
wnz4();
}
中间有个代码要改一下!!!
2005-11-23 08:18
原汁原味
Rank: 1
来 自:湖南省永州市
等 级:新手上路
帖 子:62
专家分:0
注 册:2005-11-17
得分:0 
exit(1) 不能编译,是错误

我们不能控制 时间的前进, 但我们可以掌握时间的运用!
2005-11-23 11:06
ADALE
Rank: 2
等 级:新手上路
威 望:4
帖 子:483
专家分:0
注 册:2005-11-18
得分:0 

你试下
# include <stdio.h>
void main()
{
int num=0,letter=0,space=0,other=0;

printf("please enter some words"\n);
while(getchar(c)!=\n)
{
if (c>='A'&&c<='z')
letter++;
else if (c== )
space ++;
else if (c<=0&&c>=9)
num++;
else other ++;
}
printf ("letter=%d,space=%d,num=%d,other=%d,"letter,space,num,other);

}


喜欢宁静的平凡生活
2005-11-23 23:19
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
得分:0 
7楼和我想滴一样,我新学,别的方法还不会

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2005-11-25 00:06
dsbt2035s
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-8-9
得分:0 

顶啊!!!
兄弟们看看啊!!!!

2005-11-26 10:45
lihuiyi
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-12-14
得分:0 
支持七楼
2005-12-14 07:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-34554-1-1.html




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

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