C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

指定された文字列がC++で有効な数値であるかどうかを確認します


コンセプト

指定された文字列が数値であるかどうかを検証する必要があります。

入力 − str ="12.5"

出力 − true

入力 − str ="def"

出力 − false

入力 − str ="2e5"

出力 − true

入力 − 10e4.4

出力 − false

メソッド

コードで次のケースを処理する必要があります。

  • 先頭と末尾の空白は無視する必要があります。

  • 最初の「+」、「-」、「。」は無視する必要があります。

  • 文字列内の文字が{+、-、。、e、[0-9]}

    に属していることを確認する必要があります
  • 「e」の後に「。」がないことを確認する必要があります。

  • ドット文字「。」の後に数字を続ける必要があります。

  • 文字「e」の後に「+」、「-」、または数字が続くことを確認する必要があります。

// C++ program to check if input number
// is a valid number
#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 any of the char does not belong to
      // {digit, +, -, ., e}
      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;
}
// Driver code
int main(){
   char str1[] = "0.1e10";
   if (valid_number1(str1))
      cout << "true";
   else
      cout << "false";
   return 0;
}

出力

true

  1. 指定された文字列がPythonで有効な数値であるかどうかを確認します

    数字と小数点を保持する文字列があるとすると、その文字列が数値を表しているかどうかを確認する必要があります。入力が「2.5」の場合、出力はtrueになり、入力が「xyz」の場合、出力はfalseになります。 これを解決するには、次の手順に従います- これを解決するために、プログラミング言語の文字列解析手法を使用します。文字列を数値に変換しようとします。例外がない場合は数値になり、そうでない場合は数値になります。 例 理解を深めるために、次の実装を見てみましょう- def isNumeric(s):    s = s.strip()    try:

  2. 指定された文字列が回文数であるかどうかを確認するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 文字列入力が与えられた場合、それが回文であるかどうかを確認するためにPython関数を作成する必要があります。 文字列の逆が文字列と同一である場合、文字列は回文と呼ばれます。 これは2つの方法で実行できます- スライスによる反転 負の索引付けによる比較 ここでは、スライスの助けを借りて文字列の反転を学習します。 スライスの方法で文字列を反転するには、次のステートメントを指定します- Str[ : : -1 ] 開始パラメータと終了パラメータが割り当てられておらず、ステップ値