Валиден идентификатор

Напишете програма, която позволява да се въведе низ и отпечатва дали той е валиден идентификатор (валиден идентификатор започва с латинска буква или долна черта и съдържа латиски букви, цифри и долна черта).

Публикувано в 12а с етикети . Постоянна връзка.

4 коментара по Валиден идентификатор

  1. Nate каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        char str[40],c;
        bool flac;
        cin.getline(str, 40, '\n');
        c=str[0];//otdelqne na pyrviq simvol
        flac=1;
        if (((c>='A')&&(c<='Z'))||((c>='a')&&(c<='z'))||(c=='_'))//proverka dali pyrviq simvol e validen za pyrvi na identifikator
        {
          for(int i=1;str[i]!='\0';i++)//proverka za ostanalite simvoli dali sa validni za identifikator
          {
                  c=str[i];
                  if (!(((c>='A')&&(c<='Z'))||((c>='a')&&(c<='z'))||((c>='0')&&(c<='9'))||(c=='_')))//ako teku6tiq e razli4en ot validniite se prekysva
                   {
                   flac=0;
                   break;
                   }
          }                                                                      
        }
        else flac=0;
        if (flac) cout<<"Validen e !"<<endl;
        else cout<<"Ne e validen !"<<endl;
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
    
  2. Luccar каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    { char ind[100];
    int i=0,br=0,validno=0;
    cout<<" vuvedete simvolite"<<endl;
    cin.getline(ind,100,'\n');
    while (ind[i]!='\0'){
    if (((ind[i] >= 'A') &&(ind[i]<='Z'))||((ind[i] >= 'a') &&(ind[i]<='z'))||((ind[i] >= '0') &&(ind[i]<='9'))||(ind[i] == '_'))
    {validno++;}
    br++;
    i++;}
    if (validno==br)
    cout<<"imame validen indentifikatro"<<endl;
    else cout<<" ne e validen"<<endl;
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
  3. Luccar каза:
     #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    { char ind[100];
    int i=0;
    bool validno;
    cout<<" vuvedete simvolite"<<endl;
    cin.getline(ind,100,'\n');
    while (ind[i]!='\0'){
    if (!(((ind[i] >= 'A') &&(ind[i]<='Z'))||((ind[i] >= 'a') &&(ind[i]<='z'))||((ind[i] >= '0') &&(ind[i]<='9'))||(ind[i] == '_')))
    {validno=false;}
    i++;}
    if (validno==false)
    cout<<"nqmame validen indentifikatro"<<endl;
    else cout<<"imame validen indentifikatro"<<endl;
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
  4. Данаил каза:

    Nate – вярно!
    Luccar – не проверяваш че първия символ не може да бъде цифра. Може да добавиш едно && (i>0) там където проверяваш за цифрата. При второто ти решение променливата validno отначало трябва да е true.

Вашият коментар