Identification of Keyword or valid Identifier

22. Program to check whether the given string is a keyword or a valid identifier?

Program


#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
void main()
{
int i=0,flag=0;
char a[10][10]={"int","float","break","long","char","for","if","switch","else","while"},string[10];
clrscr();
printf("Enter a string :");
gets(string);
/*----Checking whether the string is in array a[][]----*/
for(i=0;i<10;i++)      
{
if((strcmp(a[i],string)==0))
flag=1;
}
/*----If it is in the array then it is a keyword----*/
if(flag==1)
printf("\n%s is a keyword ",string);
/*----Otherwise check whether the string is an identifier----*/
else
{
flag=0;
/*----Checking the 1st character*----*/
if((string[0]=='_')||(isalpha(string[0])!=0))
{
/*---Checking rest of the characters*---*/
for(i=1;string[i]!='\0';i++)
if((isalnum(string[i])==0)&&(string[i]!='_'))
flag=1;
}
else
flag=1;
if( flag==0)
printf("\n%s is an identifier ",string);
else
printf("\n%s is neither a keyword nor an identifier ",string);

}
getch();
}


*Note: An identifier must start with an underscore(‘_’) or an alphabet.
            An identifier must contain only alphabets, numbers or ‘_’ after the first character.

Output

Enter a string :int
int is a keyword

Enter a string :abc
abc is an identifier

Enter a string :123abc
123abc is neither a keyword nor an identifier

No comments:

Post a Comment