输出合法的标示符.txt

来自「中过科学技术大学历年复试机试题」· 文本 代码 · 共 63 行

TXT
63
字号
#include<stdio.h>
#include<stdlib.h>
#include<string>

int judge(char *ch,int n){//有的程序还判断了这个字符串是不是C语言的保留字,
                          //为了方便我们这里没有判断是否为保留字
	int i;
	if((ch[0]>='A'&&ch[0]<='Z')||(ch[0]>='a'&&ch[0]<='z')||(ch[0]=='_')){
	    i=1;
        while(i<n){
		   if((ch[i]>='A'&&ch[i]<='Z')||(ch[i]>='a'&&ch[0]<='z')||(ch[i]>='0'&&ch[i]<='9')||(ch[i]=='_'))
			 i++;
			 else break;
		}
		   
		if(i==n)return 1;
		if(i<n) return 0;
	}
    
    else return 0;
}
void main(){
  FILE *fp,*fpp;

  if((fp=fopen("e:\\yt\\yt03.txt","r"))==NULL){
      printf("file open error!\n");
	  exit(0);
  }
  
  if((fpp=fopen("e:\\yt\\yt04.txt","w"))==NULL){
      printf("file open error!\n");
	  exit(1);
  }
  
  char c;
  char str[128];
  int  n=0,i,flag=0;
  char *ch=NULL;
  //puts("合法的标示符");
  printf("合法的标示符\n");
  
  while(!feof(fp)){
	flag=0;
    fscanf(fp,"%s",str);
	n=strlen(str);

    ch=(char *)malloc(n*sizeof(char)+1);
    ch[n]='\0';  
    strcpy(ch,str);
    //printf("\n*%s*\r",ch);
	
	flag=judge(ch,n);
	if(flag==1){
	  printf("%s\t",ch);
	  fprintf(fpp,"%s ",ch);
	}
	  free(ch);
	}
  printf("\n");
  system("pause");
  fclose(fp);
  fclose(fpp);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?