ホームページ >バックエンド開発 >C++ >C 文字列が整数を表すかどうかを確認するには?

C 文字列が整数を表すかどうかを確認するには?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-05 21:32:02456ブラウズ

How to Check If a C   String Represents an Integer?

C 文字列が整数であるかどうかを確認する

ユーザー入力を処理するときなど、特定の状況では、以下を区別する必要がある場合があります。整数を表す文字列とそうでない文字列。幸いなことに、C でこのタスクを実現する方法はいくつかあります。

1 つの方法は、整数の文字列表現を整数値に変換する C 関数 strtol を利用することです。 strtol を使用するには、変換プロセスをカプセル化する単純な関数を作成できます。

<code class="cpp">inline bool isInteger(const std::string &s) {
  if (s.empty() || ((!isdigit(s[0])) && (s[0] != '-') && (s[0] != '+'))) return false;

  char *p;
  strtol(s.c_str(), &p, 10);

  return (*p == 0);
}</code>
  • 概要: この関数は、指定された文字列 s が整数を表すかどうかをチェックします。
  • 空の文字列: 最初に文字列が空かどうかをチェックします。
  • 先頭の記号: ' などの先頭の非数字文字もチェックします。 ' または '-' であり、それらが存在しない場合は false を返します (整数でないことを示します)。
  • strtol 変換: この関数は strtol 関数を利用して変換を実行します。 strtol が数字以外の文字に遭遇した場合、その文字のアドレスをポインター p に割り当てます。
  • 結果の評価: p が文字列の末尾を指していない場合 (次のように表されます) ' ' 文字)、これは strtol が数字以外の文字に遭遇したことを意味します。この場合、関数は false を返し、s が整数ではないことを示します。

この関数は、指定された文字列を整数として解析できるかどうかを判断する信頼性の高い方法を提供します。これをコードに組み込むことで、整数と非整数を表す文字列を適切に処理できます。

以上がC 文字列が整数を表すかどうかを確認するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。