问题:
处理用户输入时,您可能会遇到字符串包含单词和数字的混合。如果只想隔离单词,则需要一种方法来区分它们和数字。
解决方案:
验证字符串是否表示整数的一种方法是使用 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 指向字符串末尾,则所有字符都已成功转换,表明该字符串是整数。
用法:
在你的 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中文网其他相关文章!