如何确定字符串中的字符是否为整数

时间:2010-02-26 09:50:40

标签: c++ string numbers

假设我想看一下字符串s中第10位的字符。

s.at(10);

最简单的方法是知道这是一个数字吗?

5 个答案:

答案 0 :(得分:13)

使用isdigit

std::string s("mystring is the best");
if ( isdigit(s.at(10)) ){
    //the char at position 10 is a digit
}

你需要

#include <ctype.h>

确保isdigit可用,无论标准库的实现如何。

答案 1 :(得分:8)

其他答案假设您只关心以下字符:0, 1, 2, 3, 4, 5, 6, 7, 8, 9。如果您正在编写可能在使用其他数字系统的区域设置上运行的软件,那么您将需要使用位于std::isdigit的较新<locale>http://www.cplusplus.com/reference/std/locale/isdigit/

然后您可以将以下数字识别为数字:४, ੬, ൦, ௫, ๓, ໒

答案 2 :(得分:5)

以下内容将告诉您:

isdigit( s.at( 10 ) )
如果位置10的字符是数字,

将解析为'true'。

你需要包含&lt; ctype&gt;。

答案 3 :(得分:1)

使用isdigit

if (isdigit(s.at(10)) {
    ...
}

答案 4 :(得分:0)

另一种方法是检查该字符的ASCII值

if ( s.at(10) >= '0' && s.at(10) <= '9' )
  // it's a digit