/*
2020/4/17
第二遍
*/
#include<stdio.h>
#include<string.h>
#include<ctype.h>
const int MAXVAR = 20;
char str1[100];
char str2[100];
char var1[100][20];
char var2[100][20];
int n1 = 0,n2 = 0;
int i,j;
/*
这个函数非常有用,统计变量名
*/
char getVar(char var[],int lim,char str[],int &k)//此处的char str[],int &k,相当于从流中输入数据
{
char *v = var;
while(isspace(str[k]))
{
k++;
}
if(str[k]!=';')
*v++ = str[k];
if(!isalpha(str[k]))
{
*v = '\0';
return str[k];
}
k++;
for(;--lim;v++)
{
if(isalnum(str[k]) || str[k] == '_')
{
*v = str[k];
k++;
}
else
break;
}
k--;
*v = '\0';
return v[0];
//k的控制从外部k++
}
int main()
{
gets(str1);
gets(str2);
char ch;
char var[20];
i = 0;//就算从i = 0开始将int作为变量,str2中也不可能存在着变量名为int的变量//i = 3;
while( (ch = getVar(var,MAXVAR,str1,i)) != ';')
{
if(isalpha(var[0]))
{
strcpy(var1[n1++],var);
}
i++;
}
j = 0;
while( (ch = getVar(var,MAXVAR,str2,j)) != ';')
{
if(isalpha(var[0]))
{
strcpy(var2[n2++],var);
}
j++;
}
int u,v;
for(u = 0;u<n2;u++)
{
for(v = 0;v < n1;v++)
{
if(strcmp(var2[u],var1[v]) == 0)
break;
}
if(v == n1) printf("%s\n",var2[u]);
}
return 0;
}
2017-2
最新推荐文章于 2023-05-12 08:56:18 发布