কম্পিউটার টিউটোরিয়াল

C++-এ দেওয়া স্ট্রিংটি বৈধ সংখ্যা কিনা তা যাচাই করুন


কনসেপ্ট

দেওয়া স্ট্রিংটি সংখ্যাসূচক কিনা তা যাচাই করুন।

ইনপুট − str = "12.5"

আউটপুট − true

ইনপুট − str = "def"

আউটপুট − false

ইনপুট − str = "2e5"

আউটপুট − true

ইনপুট − 10e4.4

আউটপুট − false

পদ্ধতি

নিচের কেসগুলো হ্যান্ডেল করতে হবে:

  • লিডিং ও ট্রেইলিং হোয়াইটস্পেস ইগনোর করুন।
  • শুরুতে '+', '-', '.' ইগনোর করুন।
  • স্ট্রিংয়ের ক্যারেক্টারগুলো {+, -, ., e, [0-9]} সেটের মধ্যে কিনা চেক করুন।
  • 'e'-এর পরে '.' আসা যাবে না।
  • '.'-এর পরে ডিজিট থাকতে হবে।
  • 'e'-এর পরে '+', '-', অথবা ডিজিট থাকতে হবে।

উদাহরণ

#include <bits/stdc++.h> 
#include <iostream> 
using namespace std; 

int valid_number1(string str1){ 
    int i = 0, j = str1.length() - 1; 
    while (i < str1.length() && str1[i] == ' ') 
        i++; 
    while (j >= 0 && str1[j] == ' ') 
        j--; 
    if (i > j) 
        return 0; 
    if (i == j && !(str1[i] >= '0' && str1[i] <= '9')) 
        return 0; 
    if (str1[i] != '.' && str1[i] != '+' && str1[i] != '-' && !(str1[i] >= '0' && str1[i] <= '9')) 
        return 0; 
    bool flagDotOrE = false; 
    for (i; i <= j; i++) { 
        if (str1[i] != 'e' && str1[i] != '.' && str1[i] != '+' && str1[i] != '-' && !(str1[i] >= '0' && str1[i] <= '9')) 
            return 0; 
        if (str1[i] == '.') { 
            if (flagDotOrE == true) 
                return 0; 
            if (i + 1 > str1.length()) 
                return 0; 
            if (!(str1[i + 1] >= '0' && str1[i + 1] <= '9')) 
                return 0; 
        } 
        else if (str1[i] == 'e') { 
            flagDotOrE = true; 
            if (!(str1[i - 1] >= '0' && str1[i - 1] <= '9')) 
                return 0; 
            if (i + 1 > str1.length()) 
                return 0; 
            if (str1[i + 1] != '+' && str1[i + 1] != '-' && !(str1[i + 1] >= '0' && str1[i] <= '9')) 
                return 0; 
        } 
    } 
    return 1; 
} 

int main(){ 
    char str1[] = "0.1e10"; 
    if (valid_number1(str1)) 
        cout << "true"; 
    else 
        cout << "false"; 
    return 0; 
}

আউটপুট

true

  1. C++-এ স্ট্রিংকে নির্দিষ্ট বার ক্যাটেনেট করা (Concatenate String N Times)

  2. C++ প্রোগ্রাম: স্ট্রিংয়ের পারমুটেশন সংখ্যা বের করা

  3. পাইথনে দেওয়া স্ট্রিংটি একটি বৈধ সংখ্যা কিনা চেক করুন

  4. পাইথনে স্ট্রিং নাম্বার প্যালিনড্রোম কিনা চেক করা