ホームページ > バックエンド開発 > C++ > C 文字列が整数を表すかどうかを判断するにはどうすればよいですか?

C 文字列が整数を表すかどうかを判断するにはどうすればよいですか?

DDD
リリース: 2024-11-07 04:17:02
オリジナル
374 人が閲覧しました

How to Determine if a C   String Represents an Integer?

C 文字列が整数を表すかどうかを判断する

問題:

ユーザー入力を操作するときに、文字列が発生する可能性があります単語と数字が混在しているもの。単語のみを分離したい場合は、単語と数値を区別する方法が必要です。

解決策:

文字列が整数を表しているかどうかを検証する 1 つの方法は、次のとおりです。 strtol() 関数を使用します。使用法を簡略化するために、これをカスタム関数に組み込むことができます。

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

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

   return (*p == 0);
}</code>
ログイン後にコピー

説明:

strtol() は文字列を数値として解析し、次の位置で停止します。最初の数字以外の文字。文字変数 (p) へのポインターを指定すると、最初の無効な文字の位置が示されます。 p が文字列の末尾を指している場合、すべての文字が正常に変換され、文字列が整数であることがわかります。

使用法:

メイン関数内で、この関数は次のように統合できます:

<code class="cpp">int main () {
  stringstream ss (stringstream::in | stringstream::out);
  string word;
  string str;
  getline(cin,str);
  ss<<str;
  while(ss>>word)
    {
      if(isInteger(word))
        continue;
      cout<<word<<endl;
    }
}</code>
ログイン後にコピー

これは数値入力を無視して整数ではない単語を出力します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート