問題:
ユーザー入力を操作するときに、文字列が発生する可能性があります単語と数字が混在しているもの。単語のみを分離したい場合は、単語と数値を区別する方法が必要です。
解決策:
文字列が整数を表しているかどうかを検証する 1 つの方法は、次のとおりです。 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>
説明:
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 サイトの他の関連記事を参照してください。