首页 >后端开发 >C++ >如何确定 C 字符串是否代表整数?

如何确定 C 字符串是否代表整数?

DDD
DDD原创
2024-11-07 04:17:02375浏览

How to Determine if a C   String Represents an Integer?

确定 C 字符串是否表示整数

问题:

处理用户输入时,您可能会遇到字符串包含单词和数字的混合。如果只想隔离单词,则需要一种方法来区分它们和数字。

解决方案:

验证字符串是否表示整数的一种方法是使用 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 指向字符串末尾,则所有字符都已成功转换,表明该字符串是整数。

用法:

在你的 main 函数中,你可以按如下方式集成此函数:

<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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn