-3
Dies ist ein Code zur Überprüfung einer gegebenen Zeichenfolge ist ein identifier
oder ein keyword
. Hier ist der Code:ein gegebener String ist ein gültiger Bezeichner oder Schlüsselwort in C++
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
int 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();
}
- Ich möchte diesen Code tun leichter. Und ist es möglich, die alle Schlüsselwörter zu erhalten oder zu identifizieren, ohne im char zu deklarieren? Und wie geht das?
Kann S.O den Code bereitstellen? Hier
Wenn Ihr Code konsistent formatiert und eingerückt ist, kann es einfacher sein, der Logik zu folgen. – Galik
Es wäre viel einfacher, wenn Sie [std :: string] (http://en.cppreference.com/w/cpp/string/basic_string) und [std :: vector] (http: //en.cppreference .com/w/cpp/container/vector) anstelle von Arrays und Zeichenfeldern. – Galik
Wenn Sie den Arbeitscode verbessern möchten, fragen Sie besser unter [SE Code Review] (https://codereview.stackexchange.com/). – user0042