识别字符串中的字符

时间:2011-02-13 07:52:47

标签: c++ c string

检查字符串是否包含字符“ - ”或仅包含数字的最短方法是什么?

编辑:如果没有std :: string,我将如何在C中完成?哪一个更好?

3 个答案:

答案 0 :(得分:3)

std::string有一个成员函数find,可用于搜索字符或子字符串。如果找不到搜索字符或子字符串,则返回std::string::npos

测试字符串是否仅包含数字的一种直接方法是将find_first_not_of成员函数与搜索列表"0123456789"一起使用。如果它返回std::string::npos,则该字符串仅包含数字;如果它返回任何其他值,则字符串中还有一些其他非数字字符。

答案 1 :(得分:2)

检查它是否包含任何字符。 "-"您可以使用strchr() c库调用。

至于检查一个字符串是否只包含数字,你最有可能必须遍历所有字符并使用isdigit() c库调用检查它是否为数字。

至于C ++方式,请看看James McNellis的回答。

答案 2 :(得分:1)

std::string myStr = "999-111-100";
if(myStr.find("-")!=std::string::npos)
{
    //string has a - in it
}