// idnumber.cpp - Functions for recognizing an identifier
//                and a positive integer together with driver

#include <iostream>
#include <string>
using namespace std;

// Returns true iff s is not null and consists only of digits
int isPint(const string & s)
{
  for (int k = 0; k < s.length(); ++k)
    if ((s[k] < '0') || (s[k] > '9')) return 0; //if(!isdigit(s[k]))return 0;
  return (s.length() > 0); // i.e. return 1 if length>0, 0 otherwise
}

// Returns true iff s is a legal C++ identifier
int isIdent(const string & s)
{
  if (s.length() == 0) return 0;
  if (!( isalpha(s[0]) || s[0] == '_')) return 0;
  for (int k = 1; k < s.length(); ++k)
    if (!(isalpha(s[k]) || isdigit(s[k]) || s[k] == '_')) return 0;
  return 1;
}

void main(void)
  {
    string s;

    cout << "Enter a positive integer: ";
    cin >> s;
    cout << "\"" << s << "\" is " << isPint(s) << endl;

    cout << "Enter an identifier: ";
    cin >> s;
    cout << "\"" << s << "\" is " << isIdent(s) << endl;
  }
