当前位置: 代码迷 >> C语言 >> [求助]标识符处理程序
  详细解决方案

[求助]标识符处理程序

热度:218   发布时间:2005-01-02 20:40:00.0
[求助]标识符处理程序
程序功能要求如下:
1.从键盘上输入数据到程序中;
2.将数据写出到文本文件accp.txt中;
3、计算文件中有多少个有效的标识符。有效的定义是:以字母开头,后面只能跟字母和数字。例如输入一行内容“sa,';fgf[]][ert5354[]fd3”,那么在这行中的有效标识符是:sa、fgf、ert5354、fd3,共有4个有效
各位高手帮帮忙啊!
----------------解决方案--------------------------------------------------------

//程序功能要求如下: //1.从键盘上输入数据到程序中; //2.将数据写出到文本文件accp.txt中; //3、计算文件中有多少个有效的标识符。 //有效的定义是:以字母开头,后面只能跟字母和数字。 //例如输入一行内容"sa,';fgf[]][ert5354[]fd3",那么在这行中的有效标识符是: //sa、fgf、ert5354、fd3,共有4个有效

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

void writefile(); void processfile();

//写文件以回车作为输入结束. void writefile() { FILE *fp; char ch;

if((fp=fopen("accp.txt","w"))==NULL) { printf("can not open this file!\n"); exit(1); } while((ch=getchar())!='\n') fputc(ch,fp); fclose(fp); }

void processfile() { char buffer[100]; int i; int j; int ip;//输出字符穿 int sign; int flag; int count; FILE *fp; char ch; i=0; ip=1; flag=0; sign=1; count=0; if((fp=fopen("accp.txt","r"))==NULL) { printf("can not open this file!\n"); exit(1); } while((ch=fgetc(fp))!=EOF) { if(flag==0) { while(!(isalpha(ch))&&ch!=EOF) ch=fgetc(fp); if(ch==EOF) { sign=0; if(!count) printf("there is not effective strings!\n"); }

buffer[i]=ch; i++; flag++; } else { if(isalnum(ch)) { buffer[i]=ch; i++; } else { printf("th%d string is :\t",ip++); for(j=0;j<i;j++) printf("%c",buffer[j]); printf("\n"); count++; i=0; flag=0; } } } if(sign&&i>0) { printf("th%d string is :\t",ip++); for(j=0;j<i;j++) printf("%c",buffer[j]); printf("\n"); fclose(fp); } }

void main() { writefile(); processfile(); }

//程序功能要求如下: //1.从键盘上输入数据到程序中; //2.将数据写出到文本文件accp.txt中; //3、计算文件中有多少个有效的标识符。 //有效的定义是:以字母开头,后面只能跟字母和数字。 //例如输入一行内容"sa,';fgf[]][ert5354[]fd3",那么在这行中的有效标识符是: //sa、fgf、ert5354、fd3,共有4个有效

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

void writefile(); void processfile();

//写文件以回车作为输入结束. void writefile() { FILE *fp; char ch;

if((fp=fopen("accp.txt","w"))==NULL) { printf("can not open this file!\n"); exit(1); } while((ch=getchar())!='\n') fputc(ch,fp); fclose(fp); }

void processfile() { char buffer[100]; int i; int j; int ip;//输出字符穿 int sign; int flag; int count; FILE *fp; char ch; i=0; ip=1; flag=0; sign=1; count=0; if((fp=fopen("accp.txt","r"))==NULL) { printf("can not open this file!\n"); exit(1); } while((ch=fgetc(fp))!=EOF) { if(flag==0) { while(!(isalpha(ch))&&ch!=EOF) ch=fgetc(fp); if(ch==EOF) { sign=0; if(!count) printf("there is not effective strings!\n"); }

buffer[i]=ch; i++; flag++; } else { if(isalnum(ch)) { buffer[i]=ch; i++; } else { printf("th%d string is :\t",ip++); for(j=0;j<i;j++) printf("%c",buffer[j]); printf("\n"); count++; i=0; flag=0; } } } if(sign&&i>0) { printf("th%d string is :\t",ip++); for(j=0;j<i;j++) printf("%c",buffer[j]); printf("\n"); fclose(fp); } }

void main() { writefile(); processfile(); }


----------------解决方案--------------------------------------------------------
  相关解决方案