Check whether the given string is a valid identifier - GeeksforGeeks

03 Jun, 2021
Given a string str, the task is to check if the string is a valid identifier or not. In order to qualify as a valid identifier, the string must satisfy the following conditions:  
It must start with either underscore(_) or any of the characters from the ranges [‘a’, ‘z’] and [‘A’, ‘Z’].There must not be any white space in the string.And, all the subsequent characters after the first character must not consist of any special characters like $, #, % etc.
It must start with either underscore(_) or any of the characters from the ranges [‘a’, ‘z’] and [‘A’, ‘Z’].
There must not be any white space in the string.
And, all the subsequent characters after the first character must not consist of any special characters like $, #, % etc.
Examples: 
Input: str= “_geeks123” Output: ValidInput: str = “123geeks_” Output: Invalid 
Approach: Traverse the string character by character and check whether all the requirements are met for it to be a valid identifier i.e. first character can only be either ‘_’ or an English alphabet and the rest of the characters must neither be a white space or any special character.Below is the implementation of the above approach:  
C++
Java
Python3
C#
PHP
Javascript
// C++ implementation of the approach#include <bits/stdc++.h>using namespace std; // Function that returns true if str// is a valid identifierbool isValid(string str, int n){     // If first character is invalid    if (!((str[0] >= 'a' && str[0] <= 'z')          || (str[0] >= 'A' && str[0] <= 'Z')          || str[0] == '_'))        return false;     // Traverse the string for the rest of the characters    for (int i = 1; i < str.length(); i++) {        if (!((str[i] >= 'a' && str[i] <= 'z')              || (str[i] >= 'A' && str[i] <= 'Z')              || (str[i] >= '0' && str[i] <= '9')              || str[i] == '_'))            return false;    }     // String is a valid identifier    return true;} // Driver codeint main(){    string str = "_geeks123";    int n = str.length();     if (isValid(str, n))        cout << "Valid";    else        cout << "Invalid";     return 0;}
// Java implementation of the approachimport java.util.*; class GFG{ // Function that returns true if str// is a valid identifierstatic boolean isValid(String str, int n){     // If first character is invalid    if (!((str.charAt(0) >= 'a' && str.charAt(0) <= 'z')        || (str.charAt(0)>= 'A' && str.charAt(0) <= 'Z')        || str.charAt(0) == '_'))        return false;     // Traverse the string for the rest of the characters    for (int i = 1; i < str.length(); i++)    {        if (!((str.charAt(i) >= 'a' && str.charAt(i) <= 'z')            || (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z')            || (str.charAt(i) >= '0' && str.charAt(i) <= '9')            || str.charAt(i) == '_'))            return false;    }     // String is a valid identifier    return true;} // Driver codepublic static void main(String args[]){    String str = "_geeks123";    int n = str.length();     if (isValid(str, n))        System.out.println("Valid");    else        System.out.println("Invalid");}} // This code is contributed by SURENDRA_GANGWAR
# Python3 implementation of the approach # Function that returns true if str1# is a valid identifierdef isValid(str1, n):     # If first character is invalid    if (((ord(str1[0]) >= ord('a') and          ord(str1[0]) <= ord('z')) or         (ord(str1[0]) >= ord('A') and          ord(str1[0]) <= ord('Z')) or          ord(str1[0]) == ord('_')) == False):        return False     # Traverse the for the rest of the characters    for i in range(1, len(str1)):        if (((ord(str1[i]) >= ord('a') and              ord(str1[i]) <= ord('z')) or             (ord(str1[i]) >= ord('A') and              ord(str1[i]) <= ord('Z')) or             (ord(str1[i]) >= ord('0') and              ord(str1[i]) <= ord('9')) or              ord(str1[i]) == ord('_')) == False):            return False     # is a valid identifier    return True # Driver codestr1 = "_geeks123"n = len(str1) if (isValid(str1, n)):    print("Valid")else:    print("Invalid") # This code is contributed by mohit kumar
// C# implementation of the approachusing System; class GFG{ // Function that returns true if str// is a valid identifierstatic bool isValid(String str, int n){    // If first character is invalid    if (!((str[0] >= 'a' && str[0] <= 'z')        || (str[0] >= 'A' && str[0] <= 'Z')        || str[0] == '_'))        return false;     // Traverse the string for the rest of the characters    for (int i = 1; i < str.Length; i++)    {        if (!((str[i] >= 'a' && str[i] <= 'z')            || (str[i] >= 'A' && str[i] <= 'Z')            || (str[i] >= '0' && str[i] <= '9')            || str[i] == '_'))            return false;    }     // String is a valid identifier    return true;} // Driver codepublic static void Main(String []args){    String str = "_geeks123";    int n = str.Length;     if (isValid(str, n))        Console.WriteLine("Valid");    else        Console.WriteLine("Invalid");}} // This code contributed by Rajput-Ji
<?php// PHP implementation of the approach // Function that returns true if str// is a valid identifierfunction isValid($str, $n){     // If first character is invalid    if (!(($str[0] >= 'a' && $str[0] <= 'z') ||          ($str[0] >= 'A' && $str[0] <= 'Z') ||           $str[0] == '_'))        return false;     // Traverse the string    // for the rest of the characters    for ($i = 1; $i < strlen($str); $i++)    {        if (!(($str[$i] >= 'a' && $str[$i] <= 'z') ||              ($str[$i] >= 'A' && $str[$i] <= 'Z') ||              ($str[$i] >= '0' && $str[$i] <= '9') ||               $str[$i] == '_'))            return false;    }     // String is a valid identifier    return true;} // Driver code$str = "_geeks123";$n = strlen($str); if (isValid($str,$n))    print("Valid");else    print("Invalid"); // This code is contributed by Ryuga?>
<script>// Javascript implementation of the approach // Function that returns true if str// is a valid identifierfunction isValid(str,n){    // If first character is invalid    if (!((str[0] >= 'a' && str[0] <= 'z')        || (str[0]>= 'A' && str[0] <= 'Z')        || str[0] == '_'))        return false;      // Traverse the string for the rest of the characters    for (let i = 1; i < str.length; i++)    {        if (!((str[i] >= 'a' && str[i] <= 'z')            || (str[i] >= 'A' && str[i] <= 'Z')            || (str[i] >= '0' && str[i] <= '9')            || str[i] == '_'))            return false;    }      // String is a valid identifier    return true;}     // Driver code    let str = "_geeks123";    let n = str.length;      if (isValid(str, n))        document.write("Valid");    else        document.write("Invalid"); // This code is contributed by patel2127</script>
Valid
 
ankthon
mohit kumar 29
SURENDRA_GANGWAR
Rajput-Ji
abhi486km
patel2127
school-programming
Strings
Strings
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Top 50 String Coding Problems for Interviews
Naive algorithm for Pattern Searching
Vigenère Cipher
Hill Cipher
Count words in a given string
How to Append a Character to a String in C
Convert character array to string in C++
Program to count occurrence of a given character in a string
sprintf() in C
Converting Roman Numerals to Decimal lying between 1 to 3999