假设我想看一下字符串s中第10位的字符。
s.at(10);
最简单的方法是知道这是一个数字吗?
答案 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